最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中EnumMap的使用解析

 更新時(shí)間:2023年11月08日 08:34:59   作者:一只小熊貓呀  
這篇文章主要介紹了Java中EnumMap的使用解析,EnumMap?是一種特殊的?Map,它要求自身所有的鍵來自某個(gè)枚舉類型,EnumMap?的內(nèi)部可以作為一個(gè)數(shù)組來實(shí)現(xiàn),因此它們的性能非常好,你可以放心地用?EnumMap?來實(shí)現(xiàn)基于枚舉的查詢,需要的朋友可以參考下

EnumMap

EnumMap是一種特殊的 Map,它要求自身所有的鍵來自某個(gè)枚舉類型。由于枚舉的約束(元素和索引的映射關(guān)系與數(shù)組相似),EnumMap 的內(nèi)部可以作為一個(gè)數(shù)組來實(shí)現(xiàn),因此它們的性能非常好,你可以放心地用 EnumMap 來實(shí)現(xiàn)基于枚舉的查詢。

你只能用枚舉中的元素作為鍵來調(diào)用 put() 方法,除此之外,就和調(diào)用一個(gè)普通的 Map 沒什么區(qū)別了。

下面的例子演示了設(shè)計(jì)模式中的命令模式。這種模式由一個(gè)(通常)只包含一個(gè)方法的接口開始,然后為該方法創(chuàng)建多個(gè)具有不同行為的實(shí)現(xiàn)。只需要配置好這些命令對(duì)象,程序就會(huì)根據(jù)需要來調(diào)用它們。

AlarmPoints.java

public enum AlarmPoints {
    STAIR1, STAIR2, LOBBY, OFFICE1, OFFICE2, OFFICE3,
    OFFICE4, BATHROOM, UTILITY, KITCHEN
}

EnumMaps.java

import java.util.EnumMap;
import java.util.Map;

import static enums.TEST0523.AlarmPoints.*;

interface Command {
    void action();
}

public class EnumMaps {
    public static void main(String[] args) {
        EnumMap<AlarmPoints, Command> em = new EnumMap<>(AlarmPoints.class);
        em.put(KITCHEN,() -> System.out.println("Kitchen fire!"));
        em.put(BATHROOM,() -> System.out.println("Bathroom alert!"));
        for (Map.Entry<AlarmPoints, Command> e : em.entrySet()) {
            System.out.print(e.getKey() + ": ");
            e.getValue().action();
        }
        try {
            // If there's no value for a particular key:
            em.get(UTILITY).action();
        } catch (Exception e) {
            System.out.println("Expected: " + e);
        }
    }
}

運(yùn)行結(jié)果如下:

在這里插入圖片描述

和 EnumSet 一樣,EnumMap 中的元素順序由它們?cè)诿杜e中定義的順序決定。

通過 main() 函數(shù)中的末尾部分,可以看到每個(gè)枚舉都有個(gè)鍵,但是值都是 null ,除非在該鍵上調(diào)用過 put() 方法。

相較于常量特定方法 EnumMap 的優(yōu)勢(shì)在于:利用 EnumMap ,你可以改變值對(duì)象。而你可以看到常量特定方法在編譯時(shí)是不可變的。

正如你在本章稍后會(huì)看到的,EnumMap 支持多路分發(fā)(multiple dispatching),以應(yīng)對(duì)多個(gè)類型的枚舉共存且相互影響的各種場(chǎng)景。

到此這篇關(guān)于Java中EnumMap的使用解析的文章就介紹到這了,更多相關(guān)EnumMap的的使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • springboot controller參數(shù)注入方式

    springboot controller參數(shù)注入方式

    這篇文章主要介紹了springboot controller參數(shù)注入方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • springMVC傳遞list對(duì)象的三種使用方式

    springMVC傳遞list對(duì)象的三種使用方式

    這篇文章主要介紹了springMVC傳遞list對(duì)象的三種使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Java 匯編JVM編寫jasmin程序的操作方法

    Java 匯編JVM編寫jasmin程序的操作方法

    這篇文章主要介紹了Java 匯編JVM編寫jasmin程序的操作方法,本文通過幾個(gè)示例講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • Java實(shí)現(xiàn)較大二進(jìn)制文件的讀、寫方法

    Java實(shí)現(xiàn)較大二進(jìn)制文件的讀、寫方法

    本篇文章主要介紹了Java實(shí)現(xiàn)較大二進(jìn)制文件的讀、寫方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-02-02
  • Java常用數(shù)據(jù)流全面大梳理

    Java常用數(shù)據(jù)流全面大梳理

    計(jì)算機(jī)程序中,獲取數(shù)據(jù)的方式有多種,比如:程序中直接給出、鍵盤輸入、從數(shù)據(jù)文件中讀取、從數(shù)據(jù)庫中讀取、通過網(wǎng)絡(luò)讀取等。為了更有效地進(jìn)行數(shù)據(jù)的輸入/輸出操作,Java將各種數(shù)據(jù)源的數(shù)據(jù),抽象為“數(shù)據(jù)流”,及stream
    2021-10-10
  • Mybatis中typeAliases的使用

    Mybatis中typeAliases的使用

    這篇文章主要介紹了Mybatis中typeAliases的使用,需要的朋友可以參考下
    2017-08-08
  • SpringMVC中的表現(xiàn)層結(jié)果封裝

    SpringMVC中的表現(xiàn)層結(jié)果封裝

    這篇文章主要介紹了SpringMVC中的表現(xiàn)層結(jié)果封裝,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Java將Exception信息轉(zhuǎn)為String字符串的方法

    Java將Exception信息轉(zhuǎn)為String字符串的方法

    今天小編就為大家分享一篇Java將Exception信息轉(zhuǎn)為String字符串的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Request的包裝類HttpServletRequestWrapper的使用說明

    Request的包裝類HttpServletRequestWrapper的使用說明

    這篇文章主要介紹了Request的包裝類HttpServletRequestWrapper的使用說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 在Spring項(xiàng)目中DTO層的作用和最佳實(shí)踐

    在Spring項(xiàng)目中DTO層的作用和最佳實(shí)踐

    本文介紹了DTO(Data Transfer Object)在Spring項(xiàng)目中的作用和最佳實(shí)踐,通過本文,讀者可以更好地理解DTO在Spring項(xiàng)目中的重要性和如何合理設(shè)計(jì)DTO以滿足業(yè)務(wù)需求,感興趣的朋友跟隨小編一起看看吧
    2026-02-02

最新評(píng)論

福泉市| 汉沽区| 衡阳县| 沙田区| 洪洞县| 银川市| 曲沃县| 麻江县| 徐闻县| 迭部县| 额尔古纳市| 乌拉特后旗| 迭部县| 临泉县| 龙川县| 六枝特区| 龙海市| 周口市| 德保县| 年辖:市辖区| 泸定县| 阳高县| 泾阳县| 宜川县| 湛江市| 荔波县| 南阳市| 万载县| 古蔺县| 巨野县| 赤壁市| 林周县| 宕昌县| 阳高县| 理塘县| 昌黎县| 长海县| 都匀市| 古丈县| 西藏| 合作市|