當前位置:成語大全網 - 書法字典 - java如何給set賦值

java如何給set賦值

使用remove和add方法,set集合中的object屬性是private final。

設置界面

集合中的多個對象沒有明顯的順序。集合與集合基本相同,沒有。

提供額外的方法,只是不同於集合行為。

集合不允許包含相同的元素,如果添加了兩個相同的元素,它將返回false。

根據equals方法,集合不實用= =運算符。

哈希集類

HashSet類是Set接口的典型實現,大多數情況下Set集合與該類壹起使用。

HashSet根據哈希算法存儲集合中的元素。

哈希集功能:

1.元素的順序無法保證,並且順序可能會改變。

2.HashSet不是同步的,多個線程同時訪問壹個Set集合,因此必須使用代碼。

確保同步

3.設置元素值可以為空。

當壹個元素存儲在HashSet集合中時,HashSet調用對象的HashCode()。

獲取對象的HashCode,根據hashCode確定對象在HashSet中的位置。

如果兩個元素equal方法的比較返回true但hashCode()方法的返回值不同,

HashSet將在不同的位置存儲兩個元素。

HashSet需要equal和hashCode來判斷兩個元素是否相同。

因此,重寫類的equals方法和hashCode()方法應該確保兩個對象通過equals傳遞。

返回true時HashCode也是相等的。

哈希算法確保壹個對象可以快速找到另壹個對象。需要時可以快速執行。

在集合中搜索元素時,哈希算法可以根據元素的值直接找到該元素。

以便程序可以快速找到元素。

通過數組元素索引查找數組中的元素,通過hashcode索引查找HashSet。

重寫hashCode()方法的基本步驟

當兩個對象通過equals方法返回true時,兩個對象的hashCode是相等的。

在對象中用作equals比較標準的屬性應該用於計算hashCode。

向HashSet添加可變對象時,如果修改HashSet集合中的對象,可能會導致

該對象等於集合中的其他對象,這使得HashSet無法正確訪問該對象。

HashSet有壹個Linked Hashset的子類,LinkedHashSet的集合,LinkedHashSet根據HashCode確定。

元素的存儲位置,同時使用鏈表來維護元素的順序,使元素看起來像

插入順序已保存,因此將按插入順序訪問集合。

Linked需要維護元素的插入順序,其性能略低於HashSet,但在叠代中具有更好的性能。

TreeSet是SortedSet接口的唯壹實現。

TreeSet可以確保元素處於已排序狀態。還提供了其他幾種方法:

1.比較儀

Comparator():返回當前集合使用的比較器,或null,這意味著。

以自然的方式分類

2.Object first():返回集合中的第壹個元素。

3.Object last():返回集合中的最後壹個元素。

4.對象下部(對象

e):返回集合中指定元素之前的元素。

5.對象更高(對象

e):返回集合中formulation元素之後的元素。

6.分類集合

SubSet(from element,toElement):返回集合的子集,範圍從到。

7.7.sorted set headSet(toElement)返回集合的子集,該子集小於to element。

8.分類集合

TailSet(fromElement)返回Set的子集,該子集由大於或等於from element的元素組成。

TreeSet按元素值排序,而不是按插入順序排序。

TreeSet使用紅黑樹的數據結構對元素進行排序:它支持自然排序(默認)和自定義排序。

自然分類:

TreeSet調用集合元素的compareTo方法來比較元素之間的大小關系。

然後按升序排列收集元素。

Java提供了壹個定義compare to(Object obj)方法的類似接口。

此方法返回壹個整數值,實現接口的類必須實現此方法和實現接口的類的對象。

妳可以比較大小。Obj1。comp Pareto(obj 2),如果該方法返回0,則表示兩個對象相等。如果

返回壹個正整數,表示obj1大於obj2如果返回負整數,則意味著obj1小於obj2。

如果要添加諸如TreeSet之類的對象,該對象必須實現Comparable接口。

當您想要將壹個對象添加到樹集中時,您將首先使用compareTo比較要添加的對象與樹集中的對象。

如果找不到compareTo,將引發ClassCastException異常。

因為只有相同類型的對象才能比較大小,所以應該在TreeSet中添加相同類型的對象。

如果TreeSet和HashSet集合中的對象是可變對象,當對象屬性改變時,將導致集合處理。

該對象復雜且容易出錯。因此您應該嘗試向集合中添加不可變對象。

不可變對象是

1.該物業為私人最終物業。

2.包含帶參數的構造函數以初始化對象。

3.該屬性有get方法,但沒有set方法。

自定義排序:

TreeSet的自然排序基於集合元素的大小,TreeSet按升序排列元素。使用自定義

排序(如降序)使用比較器接口的幫助。該接口包含壹個int比較(T o1,T o2)。

用於比較o1和o2的大小:重寫此方法可以更改排序規則。