集合總結2


Set

       接口

       無序,元素唯一

HashSet

       數據結構:哈希表

       不同步

       如何保證元素的唯一性:

1, 獲取哈希值:添加的自定義對象需要覆蓋hashCode()方法,寫自己的哈希值獲取方法。

 

2, 判斷對象內容:覆蓋equals()方法,提供自身判斷對象是否相等的方法。

 

容器在添加對象時,會自動調用hashCode和equals方法。

 

 

TreeSet

       數據結構:二叉樹

       不同步

       對元素進行排序。

       如何排序的?

              排序方法一:

              讓元素具備比較性。

              添加的自定義對象需要實現Comparable 接口,並覆蓋compareTo()方法。

              compareTo方法返回值有三個:正、 負 、0 ;(大於、小於、等於指定對象)

              如果相等,則不能添加到容器。(保證元素的唯一性)

              排序方法二:

              比較器:讓TreeSet集合在初始化時就具備比較性。

                            創建一個類實現Comparator接口,覆蓋compare方法。

                            將這個類對象作爲參數傳遞給TreeSet構造函數。

LinkedHashSet

       在哈希表的基礎上加入了鏈表結構,

       實現元素唯一性的同時,保證了有序。

 


 

Map集合(重點)

獨立的體系

特點:

1,一次存儲一對對象

2,這對對象,左邊叫鍵,右邊叫值,map集合中存儲的都是鍵值對。

3,鍵與值之間有對應關係(映射)。

4,在多鍵值對中,鍵必須保證唯一性。

 

 

Collection 和 Map的區別:

Collection:一次存儲一個對象,

Map        :一次存儲一對具有映射關係的鍵值對對象。

 

Map較爲常用,原因:

       可以將存儲的對象進行名稱的對應。查找對象時比較方便。

 

什麼時候使用map集合呢?

       分析問題時,如果出現了映射關係時,優先想到map集合

       如果關係中一部分是有規律的編號,可以考慮數組。

 

瞭解Map集合的基本功能

1,添加

       value put(key,value);新值覆蓋舊值,返回key對應的原來的值,原來沒有返回null

       void putAll(Map)

      

 

2,刪除

       clear()

       value remove(key):返回被移除鍵對應的值

3,判斷

       containsKey(key);

       containsValue(value)

       isEmpty();

4,獲取。

       value get(key);通過指定的鍵獲取具體的對應的值。沒有該鍵返回null。

                                   //03---null。

       size():

      

       Collection<v> values():獲取map集合中所有的值的集合.

      

       如何獲取map中所有的鍵值對呢?

      

       1,Set<K> keySet()方法:獲取map集合中的所有的鍵。並將這些鍵存儲到一個set集合中。

                                          有了set集合,就有了迭代器。在取出每一個鍵時,

                                          通過map集合的get方法就可以獲取到key對應的值。

      

       Collection是單列集合。Map是雙列集合

       爲了便於理解.

       Collection裏面存儲的是單身漢.Map集合存儲時夫妻.

      

       Map集合的取出元素的原理:將map集合轉成Set集合.在迭代.

      

      

       2,Set<Map.Entry<key,value>>entrySet(): 獲取map集合中所有的鍵值關係,並將關係存儲到Set集合中。

                                                 這個關係對象的類型就是Map.Entry.

                                                 對Set集合進行迭代,迭代出的關係對象,可以通過自己的getKey,getValue方法獲取鍵和值。

 

 

Map中常用的對象

三個:

Hashtable:(被HashMap替代)

       內部是哈希表結構,

       不允許存儲null鍵,null值。

       同步

 

HashMap:

       內部是哈希表結構,

       允許存儲null鍵、null值

       不同步

       替代了Hashtable

 

TreeMap

       內部是二叉樹結構

       可以對Map集合中的鍵值排序


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章