繼續堅持下去吧,各位騷年們! 事實上,我們的資料結構,隻剩下這個Map的知識點了,平時開發中,也是能看到他的,是以還是非常值得去學習的一個知識點的,我們直接開車了
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyNxUTMzADN0EjNyYDM2EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
泛型< k,v> 鍵值對,映射關系 基本特點
該集合存儲鍵值對,是一對一對往裡存,而且要保證鍵的唯一性
1.添加
put(key ,values)
putAll()
2.删除
clear()
remove(object key)
3.判斷
containsValue(Object value)
containsKey(Object key)
isEmpty()
4.擷取
get(Object key)
size()
values()
entrySet()
keySet()
我們的學習步驟也是這樣來的,
Map有三個子類
Hashtable
底層是哈希表資料結構,不可以存入null值或者鍵,該集合是線程同步的
HashMap
底層是哈希表資料結構,允許使用null的鍵值對,線程是不同步的。效率高
TreeMap
底層是二叉樹資料結構,線程不同步,可以用于給map集合中的鍵進行排序
Map和Set很像,其實Set底層就是使用了Map集合
我們看一下他們的共同點
這裡可以看到輸出的結果
但是這裡要注意的是,添加元素,如果添加的時候,相同的鍵,那麼後面的,會被後添加的覆寫原有的鍵對應的值,并put方法會傳回被覆寫的值
想取出他的值,他并沒有疊代器,那我們的思路可以轉變一下拿到他的所有的鍵再去get不就可以拿到鍵值對了,我們來看一下
keySet
将map中所有的值存入到Set集合中,因為Set具備疊代器,所有可以疊代方法取出的所有的鍵,根據get方法,擷取每一個鍵對應的值
這種方法還是比較好了解的,對吧,但是這樣比較麻煩,我們來看另一種
定義泛型雖然比較麻煩,但是取出來還是比較簡單的,原理是什麼?其實我們可以寫一段僞代碼來說明的
父子接口,直接通路,内部規則
我們可以通過一個小練習來學習一下使用規則,而需求,我直接寫在注釋上
OK,例子就是用兩種取出的方式罷了,相信你自己也一定能做好的,好的,我們本節課到這裡也就結束了,下節再見