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

歡迎訪問 生活随笔!

生活随笔

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

java

Java集合:Map集合

發布時間:2025/3/8 java 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java集合:Map集合 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、簡述

public interface Map<K,V>將鍵映射到值的對象。一個映射不能包含重復的鍵;每個鍵最多只能映射到一個值。

注意:Map中的集合不能包含重復的鍵,值可以重復。每個鍵只能對應一個值。

Map集合是鍵值對形式存儲值的,所以遍歷Map集合無非就是獲取鍵和值,根據實際需求,進行獲取鍵和值。

Map接口提供三種collection試圖,允許以鍵集、值集或鍵-值集映射關系集的形式查看某個映射的內容。映射順序 定義為迭代器在映射的 collection 視圖上返回其元素的順序。某些映射實現可明確保證其順序,如 TreeMap 類;另一些映射實現則不保證順序,如 HashMap 類。

注:

將可變對象用作映射鍵時必須格外小心。當對象是映射中某個鍵時,如果以影響 equals 比較的方式更改了對象的值,則映射的行為將是不確定的。此項禁止的一種特殊情況是不允許某個映射將自身作為一個鍵包含。雖然允許某個映射將自身作為值包含,但請格外小心:在這樣的映射上 equals 和 hashCode 方法的定義將不再是明確的。

所有通用的映射實現類應該提供兩個“標準的”構造方法:

一個 void(無參數)構造方法,用于創建空映射;

一個是帶有單個 Map 類型參數的構造方法,用于創建一個與其參數具有相同鍵-值映射關系的新映射。

實際上,后一個構造方法允許用戶復制任意映射,生成所需類的一個等價映射。盡管無法強制執行此建議(因為接口不能包含構造方法),但是 JDK 中所有通用的映射實現都遵從它。

二、Map接口

public interface Map<K, V>{int size(); //返回此映射中的鍵-值映射關系數。boolean isEmpty(); //如果此映射未包含鍵-值映射關系,則返回 true。boolean containsKey(Object key); //如果此映射包含指定鍵的映射關系,則返回 true。boolean containsValue(Object value) //如果此映射將一個或多個鍵映射到指定值,則返回 true。V get(Object key); //根據key查找對應value數據,如果沒有,則返回 null。V put(K key, V value); //向集合保存數據可選操作)。V remove(Object key); //如果存在一個鍵的映射關系,則將其從此映射中移除(可選操作)。void putAll(Map<? extends K, ? extends V> m); //從指定映射中將所有映射關系復制到此映射中(可選操作)。void clear(); //從此映射中移除所有映射關系(可選操作)。Set<K> KeySet(); //返取出全部key。Collection<V> values(); //返回此映射中包含的值的 Collection 視圖。Set<Map, Entry<K, V>> entrySet(); //即將Map集合轉化為Set集合。interface Entry<K, V> {K getKey();V getValue();V setValue(V value);boolean equals(Object o);int hashCode(); }boolean equals(Object o); //比較指定的對象與此映射是否相等。int hashCode(); //返回此映射的哈希碼值。 }

三、具體實現

接口java.util.Map,包括3個實現類:HashMap、Hashtable、TreeMap。當然還有LinkedHashMap、ConcurrentHashMap 、WeakHashMap。

Map是用來存儲鍵值對的數據結構,鍵值對在數組中通過數組下標來對其內容索引的,而鍵值對在Map中,則是通過對象來進行索引,用來索引的對象叫做key,其對應的對象叫value。

四、Map的兩種取值方式KeySet、entrySet

(一)KeySet

先獲取所有鍵的集合,再根據鍵獲取對應的值。(即先找到丈夫,再去找妻子)

keySet的演示圖解

(二)entrySet

先獲取map中的鍵值關系封裝成一個個的entry對象, 存儲到一個Set集合中,再迭代這個Set集合, 根據entry獲取對應的key和value。向集合中存儲自定義對象(entry類似于是結婚證)

entrySet的演示圖解

HashMap : 內部結構是哈希表,不是同步的。允許null作為鍵,null作為值。
  TreeMap : 內部結構是二叉樹,不是同步的。可以對Map集合中的鍵進行排序。

五、HashMap

總結

以上是生活随笔為你收集整理的Java集合:Map集合的全部內容,希望文章能夠幫你解決所遇到的問題。

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