Java之Set集合的學習

2021-08-20 18:16:57 字數 884 閱讀 2357

在學習完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...