1. 程式人生 > >Java集合--Map

Java集合--Map

string rem int 對象 重復 hold 快速 ring 初始

Map接口(雙例集合):

  Map提供了映射關系,存放的元素是以key-value鍵值對存放的。可以根據key快速的查詢value。key不可以重復,value可以重復。

常用實現類:HashMap,Hashtable,LinkedHashMap,TreeMap

常用方法 判斷功能 boolean isEmpty():判斷map是否為空 boolean containsKey(Object key):判斷是否包含某個key boolean containsValue(Object value):判斷是否包含某個value 獲取功能 int size():返回鍵值對的個數 V get(Object key):返回指定鍵所映射的值;如果此映射不包含該鍵的映射關系,則返回 null Set<K> keySet():返回此映射中包含的鍵的 Set 視圖 Collection<V> values():返回此映射中包含的值的 Collection 視圖 Set<Map.Entry<K, V>> entrySet():返回此映射中包含的映射關系的 Set 視圖 添加功能 V put(K key, V value):將指定的值與此映射中的指定鍵關聯(可選操作)。如果此映射以前包含一個該鍵的映射關系,則用指定值替換舊值,並且返回舊的值。否則返回null void putAll(Map<? extends K, ? extends V> m):把一組鍵值對放入到Map中。 刪除功能 V remove(Object key):刪除指定的key對應的鍵值對,返回被刪除的鍵指定的值 void clear():從此映射中移除所有映射關系 遍歷方式 方式1:根據鍵找值 獲取所有鍵的集合 遍歷鍵的集合,獲取到每一個鍵 根據鍵找值 如: Set<String> keySet = stus.keySet(); for(String key : keySet){ System.out.println(key +": "+stus.get(key)); } 方式2:根據鍵值對對象找鍵和值 獲取所有鍵值對對象的集合 遍歷鍵值對對象的集合,獲取到每一個鍵值對對象 根據鍵值對對象找鍵和值 Set<Entry<String, String>> entrySet = stus.entrySet(); for(Entry<String, String> entry : entrySet){ System.out.println(entry.getKey()+" : "+entry.getValue()); } HashMap: 特點:
  1. 不保證映射的順序
  2. 可以使用null作為鍵或者值
  3. 線程不安全
  4. 底層使用Hash表來存儲數據,默認大小16,負載因子0.75,當hash表的容量超過負載因子的時候開始擴容,擴容為原始容量的2
  5. 擴容時機,元素個數超過threshold的時候。
  6. 最多可以存放的元素個數為1<<30
  7. 執行new HashMap()的時候,並沒有初始化table;而是在put的時候,才初始化。
  8. 不允許重復的key

LinkedHashMap:

特點:

  1. 可以排序,註意這裏所說的順序並不是添加的順序。而是從大到小或者從小到大的順序。
  2. 保證元素的唯一性

Hashtable:

特點:

1、線程安全,效率低 2、不能將null作為鍵或者值 3、初始容量為11,負載因子為0.75。超過負載因子*容量開始擴容,擴容為舊的容量*2+1

Java集合--Map