Java基礎
Map集合
Map集合:該集合存儲鍵值對。一對一對往裏存。而且要保證鍵的唯一性。
1,添加。
put(K key, V value)
putAll(Map<? extends K,? extends V> m)
2,刪除。
clear()
remove(Object key)
3,判斷。
containsValue(Object value)
containsKey(Object key)
isEmpty()
4,獲取。
get(Object key)
size()
values()
entrySet()
keySet()
Map
Hashtable:底層是哈希表數據結構,不可以存入null鍵null值。該集合是線程同步的。jdk1.0.效率低。
HashMap:底層是哈希表數據結構,允許使用 null 值和 null 鍵,該集合是不同步的。將hashtable替代,jdk1.2.效率高。
TreeMap:底層是二叉樹數據結構。線程不同步。可以用於給map集合中的鍵進行排序。
和Set很像。
其實Set底層就是使用了Map集合。
Map集合的兩種取出方式
1,Set keySet:
將map中所有的鍵存入到Set集合。因爲set具備迭代器。
所有可以迭代方式取出所有的鍵,再根據get方法。獲取每一個鍵對應的值。
Map集合的取出原理:將map集合轉成set集合。在通過迭代器取出。
2,Set<Map.Entry<k,v>> entrySet:
將map集合中的映射關係存入到了set集合中,
而這個關係的數據類型就是:Map.Entry
Entry其實就是Map中的一個static內部接口。
爲什麼要定義在內部呢?
因爲只有有了Map集合,有了鍵值對,纔會有鍵值的映射關係。
關係屬於Map集合中的一個內部事物。
而且該事物在直接訪問Map集合中的元素。
Map與Collection
Map與Collection在集合框架中屬並列存在
Map存儲的是鍵值對
Map存儲元素使用put方法,Collection使用 add方法
Map集合沒有直接取出元素的方法,而是 先轉成 Set集合,在通過迭代獲取元素
Map集合中鍵要保證唯一性
Map集合常用類
Hashtable:線程安全,速度慢,不允許存放 null 鍵,null值,已被HashMap替代。
HashMap:線程不安全,速度快,允許存放null 鍵,null值。
TreeMap:對鍵進行排序,排序原理與TreeSet 相同。