日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java 映射(Map)和集合(Set) 用法总结

發布時間:2023/12/31 java 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 映射(Map)和集合(Set) 用法总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、定義層面

Map 接口定義映射,存儲一組鍵值對的映射關系。

Set 接口定義集合,存儲一組互不相同的元素,該接口繼承了 Collection 接口。

2、Map 接口的概念和常用方法
? ? ? Map 接口存儲一組鍵值對的映射關系,映射中的每個鍵對應一個值。映射中不能有重復的鍵,否則會出現一個鍵對應多個值的情況,這違背了映射的定義。

(1)放置鍵值對
? ? ??放置鍵值對的方法有 put 和 putAll,其中 put 一次放置一個鍵值對,putAll 一次將另一個映射中的鍵值對全部添加道當前映射中。在映射中放置鍵值對時,如果映射中沒有對應的鍵,則在映射中新建一個鍵值對,否則用新的鍵值對覆蓋原來的相同鍵的鍵值對。

(2)刪除鍵值對
? ? ? 刪除鍵值對的方法有 remove 和 clear,其中 remove 刪除指定鍵的鍵值對,clear 刪除當前映射中的全部鍵值對。

(3)判斷包含鍵或值
? ? ? 判斷包含鍵或值的方法有 containsKey 和 containsValue,其中 containsKey 判斷映射中是否包含指定的鍵,containsValue判斷映射中是否包含指定的值。

(4)根據鍵獲得值
? ? ? 根據鍵獲得值得方法有 get,該方法返回映射中指定鍵的值。

(5)獲得鍵或鍵值對的集合
? ? ? 獲得鍵或鍵值對的集合的方法有 entrySet 和 keySet,其中 entrySet 返回映射的所有鍵值對的集合,keySet 返回映射的所有鍵的集合。

(6)獲得值的容器
獲得值的容器的方法有 values,該方法返回映射的所有值的容器。

(7)其他方法
方法 isEmpty 判斷當前映射是否為空(即不包含鍵值對),方法 size 返回映射中的鍵值對數目。

(8)Map 接口的實現類 HashMap、Hashtable 和 TreeMap

  • HashMap 和 Hashtable

? ? ? ? HashMap 類是散列映射,通過散列函數計算鍵對應的存儲位置,因此可以快速地完成放置鍵值對、刪除鍵值對、根據鍵獲得值的操作。

//初始化方法 Map<Character,Integer>change=new HashMap<Character,Integer>(){{put('I',1);put('V',5);put('X',10);put('L',50);put('C',100);put('D',500);put('M',1000);}};

? ? ? JDK 1.8 之前的 HashMap 的底層通過數組和鏈表實現,如果出現沖突則通過拉鏈法解決沖突。JDK 1.8 在解決沖突時的實現有較大變化,當鏈表長度大于閾值(默認為 8)時,將鏈表轉化為紅黑樹,以減少搜索時間。

? ? ? ?Hashtable 類是散列表,其功能和 HashMap 相似。以下是 HashMap 和 Hashtable 的部分區別。

? ? ? ?HashMap 不是線程安全的,Hashtable 的大多數方法用關鍵字 synchronized 修飾,因此 Hashtable 是線程安全的。在不需要保證線程安全的情況下,HashMap 的效率高于 Hashtable。

? ? ? ?HashMap 允許鍵或值為 null,只能有一個鍵為 null,可以有一個或多個鍵對應的值為 null,Hashtable 不允許鍵或值為 null。

? ? ? ? 從 JDK 1.8 開始,HashMap 在鏈表長度大于閾值(默認為 8)時,將鏈表轉化為紅黑樹以減少搜索時間,Hashtable 沒有這樣的機制。

  • TreeMap

? ? ? ?TreeMap 是有序映射,鍵可以使用 Comparable 接口或 Comparator 接口排序。

? ? ? ?TreeMap 的底層實現是紅黑樹,通過紅黑樹維護映射的有序性。由于要維護映射的有序性,因此 TreeMap 的各項操作的平均效率低于 HashMap,但是 TreeMap 可以按照順序獲得鍵值對。

3、Set 接口的定義和常用方法
? ? ? ?Set 接口存儲一組互不相同的元素,一個集合中不存在兩個相等的元素。

? ? ? ?Set 接口繼承了 Collection 接口,沒有引入新的方法或常量,只是規定其實例不能包含相等的元素。

(1)Set 接口的實現類 HashSet 和 TreeSet

  • HashSet

? ? ? ?HashSet 類是散列集合,其底層實現基于 HashMap。當對象加入散列集合時,需要判斷元素是否重復,首先通過方法 hashCode 計算對象的散列碼檢查是否有對象具有相同的散列碼,如果沒有相同的散列碼則沒有重復元素,否則再通過方法 equals 檢查是否有相等的對象。

? ? ? ?根據散列約定,如果兩個對象相同,它們的散列碼一定相同,因此如果在子類中重寫了 equals 方法,必須在該子類中重寫 hashCode 方法,以保證兩個相等的對象對應的散列碼是相同的。

  • TreeSet

TreeSet 類是有序集合,其底層實現基于 TreeMap。和 TreeMap 相似,TreeSet 可以使用 Comparable 接口或 Comparator 接口對元素排序。

總結

以上是生活随笔為你收集整理的Java 映射(Map)和集合(Set) 用法总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美无极品 | 探花国产 | 爱爱精品| 久草欧美 | 亚洲欧美日韩中文字幕在线观看 | 91网站在线观看视频 | 极品少妇在线 | 欧美黑人狂野猛交老妇 | 97日韩精品 | 日日夜夜免费视频 | 亚洲天堂网在线观看视频 | 国产精品毛片久久久久久久 | 亚洲第一视频在线播放 | 性欧美大战久久久久久久免费观看 | 国产精品久久久久久久久久免费 | 日韩欧美成| 黄色网址国产 | 美女av免费观看 | 久久99精品久久久久久三级 | 国产精品白嫩极品美女视频 | 中文一区视频 | 精品国产一区在线观看 | 国产第一精品视频 | 成人免费在线视频观看 | 美女的胸给男人玩视频 | 国产尤物av | 色男人影院 | 天天躁日日躁狠狠躁免费麻豆 | www.超碰在线.com | 超碰人人做 | 国产精品第100页 | 成人动漫视频 | 另类图片亚洲色图 | 超碰成人免费在线 | 亚洲高清二区 | 天堂一区在线 | 国产喷水在线 | 日韩欧美福利 | 欧美精品一区二区三区久久 | 夜夜高潮夜夜爽国产伦精品 | 中文字幕av片 | 欧美在线 | 亚洲 | 国产一区二区免费看 | 射综合网| 美丽的姑娘在线观看 | 国产v综合v亚洲欧美久久 | 91色综合| 丰满少妇久久久久久久 | 日本中文在线 | 午夜综合| 97干在线 | 国产无遮挡裸体免费视频 | 一区二区三区黄色 | 97干视频| 亚洲一区自拍偷拍 | 美女扒开腿让人桶爽原神 | 69看片| 成人va在线观看 | 在线视频午夜 | 国产超碰91 | 天天摸天天射 | 一区二区三区黄色录像 | 免费在线观看的黄色网址 | 在线欧美a | 久伊人| 欧美色综合天天久久综合精品 | 国产片网址 | 欧美群交射精内射颜射潮喷 | 亚洲香蕉在线视频 | 中文字幕日韩高清 | 日韩精品综合 | 日韩视频免费播放 | 国产国拍精品亚洲 | 4444亚洲人成无码网在线观看 | 波多野一区 | 毛片在哪里看 | 99国产精品一区二区三区 | 日韩精品视频一区二区 | 国产精品91一区 | 人妻熟女一区二区三区app下载 | 久久奇米 | 一本大道久久精品 | 国产日本欧美一区二区 | 久久国产精品久久国产精品 | 中国女人内96xxxxx | 日韩欧美成人免费视频 | 夫妻露脸自拍[30p] | 国产91看片 | 亚洲国产精品视频在线 | 久久中文字幕视频 | 黄色av电影在线观看 | 美女被啪啪| 色乱码一区二区三在线看 | 日韩一级 | 蜜臀av性久久久久蜜臀aⅴ麻豆 | 日韩干| 青草成人| 国产不卡视频在线播放 | 一级黄色免费网站 |