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

Java中EnumMap和EnumSet枚舉操作類的簡(jiǎn)單使用詳解

 更新時(shí)間:2023年11月08日 08:55:21   作者:你就像甜甜的益達(dá)  
這篇文章主要介紹了Java中EnumMap和EnumSet枚舉操作類的簡(jiǎn)單使用詳解,EnumMap是Map接口的一種實(shí)現(xiàn),專門用于枚舉類型的鍵,所有枚舉的鍵必須來(lái)自同一個(gè)枚舉?EnumMap不允許鍵為空,允許值為空,需要的朋友可以參考下

EnumMap

這個(gè)類,1.5就出了,繼承AbstractMap,說(shuō)白了就是個(gè)map,只是他的key是枚舉: Enummap也是線程不安全的,內(nèi)部實(shí)現(xiàn)了迭代器,如果有線程安全問(wèn)題,記得轉(zhuǎn)迭代器,使用這個(gè)方法轉(zhuǎn)就好enumMap.entrySet().iterator():

在這里插入圖片描述

在這里插入圖片描述

使用就是直接當(dāng)做map就好了,為啥要使用這個(gè)類,很簡(jiǎn)單,快,進(jìn)行了部分優(yōu)化,所以當(dāng)key為枚舉的時(shí)候盡量使用這個(gè)類:

 @org.junit.Test
  public void test2() {
    EnumMap<Season, String> enumMap = new EnumMap<>(Season.class);
    HashMap<Season, String> aaa = new HashMap();
    enumMap.put(Season.SPRING, "春天");
    enumMap.put(Season.SUMMER, "夏天");
    enumMap.put(Season.AUTUMN, "秋天");
    enumMap.put(Season.WINTER, "冬天");
    System.out.println(enumMap);
    aaa.put(Season.SPRING, "春天");
    aaa.put(Season.SUMMER, "夏天");
    aaa.put(Season.AUTUMN, "秋天");
    aaa.put(Season.WINTER, "冬天");
    System.out.println(aaa);
  }

enum Season {
  SPRING, SUMMER, AUTUMN, WINTER;
}

性能比較測(cè)試:

 @org.junit.Test
  public void test3() {
    EnumMap<Season, String> enumMap = new EnumMap<>(Season.class);
    HashMap<Season, String> aaa = new HashMap();
    long l = System.currentTimeMillis();
    for (int i = 0; i < 100000; i++) {
      enumMap.put(Season.SPRING, "春天");
      enumMap.put(Season.SUMMER, "夏天");
      enumMap.put(Season.AUTUMN, "秋天");
      enumMap.put(Season.WINTER, "冬天");
      enumMap.remove(Season.SPRING);
      enumMap.remove(Season.SUMMER);
      enumMap.remove(Season.AUTUMN);
      enumMap.remove(Season.WINTER);
    }
    long l2 = System.currentTimeMillis();
    System.out.println(l2 - l);
    long l3 = System.currentTimeMillis();
    for (int i = 0; i < 100000; i++) {
      aaa.put(Season.SPRING, "春天");
      aaa.put(Season.SUMMER, "夏天");
      aaa.put(Season.AUTUMN, "秋天");
      aaa.put(Season.WINTER, "冬天");
      aaa.remove(Season.SPRING);
      aaa.remove(Season.SUMMER);
      aaa.remove(Season.AUTUMN);
      aaa.remove(Season.WINTER);
    }
    long l4 = System.currentTimeMillis();
    System.out.println(l4 - l3);
  }

執(zhí)行結(jié)果:快樂(lè)一倍左右吧

在這里插入圖片描述

EnumSet

跟enummap差不多,大部分方法跟Set差不多,只不過(guò)構(gòu)建方法加了很多:

在這里插入圖片描述

提供了很多靜態(tài)的構(gòu)建方法:

在這里插入圖片描述

簡(jiǎn)單的構(gòu)建方法測(cè)試:

 @org.junit.Test
  public void test1() {
    //創(chuàng)建一個(gè)EnumSet集合,集合元素就是Season枚舉類的全部枚舉值
    EnumSet es = EnumSet.allOf(Season.class);
    System.out.println(es);

    //創(chuàng)建一個(gè)EnumSet空集合,只頂其集合元素是Season類的枚舉值
    EnumSet es2 = EnumSet.noneOf(Season.class);
    System.out.println(es2);

    //以枚舉值來(lái)創(chuàng)建EnumSet集合
    EnumSet es3 = EnumSet.of(Season.SUMMER, Season.WINTER);
    System.out.println(es3); //輸出[SUMMER, WINTER]

    //創(chuàng)建一個(gè)包含Season枚舉值從SUMMER到WINTER的EnumSet集合
    EnumSet es4 = EnumSet.range(Season.SUMMER, Season.WINTER);
    System.out.println(es4);//輸出[SUMMER, Fall, WINTER]

    //創(chuàng)建一個(gè)EnumSet集合,其元素和es4集合元素類型相同, es4元素+es5元素=Sesson枚舉的全部枚舉值
    EnumSet es5 = EnumSet.complementOf(es4);
    System.out.println(es5);//輸出[SPRING]
  }

執(zhí)行結(jié)果:

在這里插入圖片描述

其他方法就很簡(jiǎn)單,跟set一樣,只不過(guò)還是對(duì)枚舉有優(yōu)化;所以,如果有枚舉set盡量使用這兩個(gè)類

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

相關(guān)文章

  • Spring Cloud Stream微服務(wù)消息框架原理及實(shí)例解析

    Spring Cloud Stream微服務(wù)消息框架原理及實(shí)例解析

    這篇文章主要介紹了Spring Cloud Stream微服務(wù)消息框架原理及實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • 不使用myeclipse注冊(cè)機(jī)得到myeclipse注冊(cè)碼的方法(myeclipse序列號(hào))

    不使用myeclipse注冊(cè)機(jī)得到myeclipse注冊(cè)碼的方法(myeclipse序列號(hào))

    本文為大家介紹不使用myeclipse注冊(cè)機(jī)就能得到myeclipse注冊(cè)碼(序列號(hào))的方法, 運(yùn)行下面的JAVA代碼就可以了
    2014-01-01
  • Java深入探究Object類的方法

    Java深入探究Object類的方法

    java繼承中說(shuō)到的Object類是java中一個(gè)特殊的類,所有的類都是直接或者間接的繼承自O(shè)bject類,即如果某個(gè)類沒(méi)有使用extends關(guān)鍵字則默認(rèn)是java.lang.Object類的子類,所以所有的類都可以使用Object類中定義的方法,下面介紹Object類的常用方法
    2022-05-05
  • 詳解springBoot啟動(dòng)時(shí)找不到或無(wú)法加載主類解決辦法

    詳解springBoot啟動(dòng)時(shí)找不到或無(wú)法加載主類解決辦法

    這篇文章主要介紹了詳解springBoot啟動(dòng)時(shí)找不到或無(wú)法加載主類解決辦法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 10本Java架構(gòu)師必讀書籍

    10本Java架構(gòu)師必讀書籍

    這篇文章主要介紹了10本Java架構(gòu)師必讀書籍,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • SpringBoot讀取資源目錄中JSON文件的方法實(shí)例

    SpringBoot讀取資源目錄中JSON文件的方法實(shí)例

    最近做項(xiàng)目遇到需要將json類型的配置文件引用到項(xiàng)目中,已經(jīng)將讀取json文件的方法封裝成工具類,下面這篇文章主要給大家介紹了關(guān)于SpringBoot讀取資源目錄中JSON文件的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • Flowable整合SpringBoot實(shí)現(xiàn)的示例代碼

    Flowable整合SpringBoot實(shí)現(xiàn)的示例代碼

    本文詳細(xì)介紹了如何在SpringBoot項(xiàng)目中整合Flowable進(jìn)行工作流管理,包括依賴引入、流程部署與啟動(dòng)、表結(jié)構(gòu)、流程掛起和激活以及任務(wù)分配等關(guān)鍵操作,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-09-09
  • 硬核 Redis 高頻面試題解析

    硬核 Redis 高頻面試題解析

    Redis 是一個(gè)高性能的key-value數(shù)據(jù)庫(kù)。在部分場(chǎng)合可以對(duì)關(guān)系數(shù)據(jù)庫(kù)起到很好的補(bǔ)充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客戶端使用很方便
    2021-06-06
  • Spring注解@Autowired和@Resource的區(qū)別詳解

    Spring注解@Autowired和@Resource的區(qū)別詳解

    這篇文章主要介紹了Spring注解@Autowired和@Resource的區(qū)別詳解,@Autowired與@Resource都可以用來(lái)裝配bean,都可以寫在字段或setter方法上,@Resource是JDK提供的注解,默認(rèn)按照名稱進(jìn)行裝配,名稱可通過(guò)name屬性進(jìn)行指定,需要的朋友可以參考下
    2023-12-12
  • 詳解Springboot應(yīng)用中設(shè)置Cookie的SameSite屬性

    詳解Springboot應(yīng)用中設(shè)置Cookie的SameSite屬性

    Chrome 51 開始,瀏覽器的 Cookie 新增加了一個(gè)SameSite屬性,用來(lái)防止 CSRF 攻擊和用戶追蹤。今天通過(guò)本文給大家介紹Springboot應(yīng)用中設(shè)置Cookie的SameSite屬性,感興趣的朋友一起看看吧
    2022-01-01

最新評(píng)論

连云港市| 丰镇市| 嘉善县| 渝北区| 蓝田县| 环江| 电白县| 仲巴县| 大姚县| 沐川县| 锦州市| 冕宁县| 建宁县| 焉耆| 锡林浩特市| 贡嘎县| 卫辉市| 武定县| 东乌珠穆沁旗| 文登市| 谢通门县| 永州市| 布尔津县| 甘肃省| 来安县| 东方市| 六枝特区| 南开区| 沁阳市| 西平县| 临潭县| 灌南县| 东阳市| 阳东县| 沅江市| 花垣县| 衡山县| 安福县| 当涂县| 永丰县| 仁化县|