在學習完list集合的三個子實現類後就開始學習set集合。
set集合和list集合的區別?
set集合:
不允許元素重複,唯一的(元素可以為null) ,不能保證迭代的順序恆久不變(底層雜湊表和hascode)
無序(儲存和取出不一致)
list集合
:允許元素重複,並且儲存特點:有序性(儲存和取出一致)
通過set集合儲存字串並遍歷,發現set集合儲存元素的時候,可以保證元素的唯一性,原因什麼?
hashset集合的add方法底層依賴於雙列集合hashmap,它依賴於兩個方法,hashcode()方法和equals()方法,先比較字串的hashcode()碼值一樣,再比較equals()方法。 如果hashcode碼值一樣,還要比較內容是否相同,由於儲存string,重寫了equals()方法。
如果在開發中,元素唯一性,並且還要保證元素有序(儲存和取出一致),使用
linkedhashset
集合.linkedhashset集合:
底層是一種鏈結列表和雜湊表組成
可以保證元素的唯一性,是由雜湊表決定的(hashcode()和equals())
可以保證元素的迭代順序一致(有序),儲存和取出一致,是由鍊錶決定
treeset集合:
自然排序:自定義的類實現compareable介面,然後建立treeset物件,通過無參構造形式建立物件
比較器排序 :public treeset(comparatorcomparator)
兩種方式:
1)自定義乙個類,該類實現comparator介面,重寫comparator介面中的compare()方法
2)直接使用介面匿名內部類的方式實現
treeset集合保證元素唯一,是看返回值是否為0
Java學習筆記之Set集合
set集合由jdk1.2開始新增,繼承自collection介面。set集合是乙個不包含重複元素的集合。如果允許重複,請使用list集合 set集合中沒有提供額外的方法,只有以下方法需要特殊說明 boolean add e e 如果集合中不包含指定元素,則新增到集合中,並返回true。否則將保持se...
JAVA集合學習 Set
可以分為3種集合set list,map,其中常用的有hashset,arraylist,hashmap 1,collection是set,list,queue3個介面的父介面主要方法如下 collection a new arraylist collection b new arraylist 新...
Java之Set集合詳解
set是無序 無下標 不重複的 新增字串 建立乙個hashset hashsetset new hashset 新增 boolean add set add d boolean add2 set add d set.add a set.add a set.add b set.add c system...