91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java集合之TreeSet

發布時間:2020-04-16 09:30:58 來源:網絡 閱讀:389 作者:季沉Trace 欄目:編程語言

概述

TreeSet是SortedSet的實現類,可以確保集合元素處于排序狀態(根據元素實際值的大小進行排序)

TreeSet采用紅黑樹的數據結構來存儲集合元素,且支持兩種排序方法:自然排序和定制排序,默認采用自然排序

常用方法

Object first()????????????????????????????????????返回第一個元素

Object last()???????????????????????????????????? 返回最后一個元素

Object lower(Object e)????????????????????返回指定元素的前一個元素

Object higher(Object e)???????????????????返回指定元素的后一個元素

SortedSet subSet(Object fromElement Object toElement):? ? ? ? ? ? [fromElement,toElement)

SortedSet headSet(Object toElement):????????????????????????????????????????? ? [????????????????????,toElement)

SortedSet tailSet(Object fromElement):???????????????????????????????????????????[fromElement,????????????? ? )

Comparator comparator():如果TreeSet采用了定制排序,則返回定制排序所使用的Comparator.如果是采用自然排序,就返回null


自然排序:TreeSet調用集合元素的compareTo(Object obj)方法來比較元素之間的大小關系,然后將集合元素按升序排列

Java提供了一個Comparable接口,該接口定義了一個compareTo(Object obj)方法,該方法返回一個整數值,實現該接口的類必須實現該方法,實現了該接口的類的對象就可以比較大小。

TreeSet中的元素應該是同一個類的對象

當把一個對象加入TreeSet集合時,TreeSet調用該對象的compareTo(Object obj)方法與容器中的其他對象比較大小,然后根據紅黑樹結構找到它的存儲位置。

如果兩個對象通過compareTo(Object obj)比較相等,新對象將無法添加到TreeSet集合中。

當需要把一個對象放入TreeSet中,重寫該對象對應類的equals()方法時,應保證該方法與compareTo(Object obj)方法有一致的結果。其規則是:如果兩個對象通過equals()方法比較返回true時,這兩個對象通過compareTo(Object obj)比較時應返回0

注:把一個對象添加到TreeSet時,該對象的類必須實現Comparable接口

定制排序:通過Comparator接口的幫助,實現定制排序。該接口里包含了一個int compare(T o1,T o2)方法,用于比較o1和o2的大小

在創建TreeSet集合對象時,提供一個Comparator對象與TreeSet集合關聯,由該Comparator對象負責集合元素的排序邏輯

TreeSet ts = new TreeSet((o1,o2) ->?

{

????M m1 = (M)o1;

????M m2 = (M)o2;

????return m1.age > m2.age ? -1 : m1.age < m2.age ? 1:0

})

?注:M是一個自定義類,關鍵變量是age


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新民市| 太谷县| 正阳县| 永州市| 台东市| 沧州市| 七台河市| 莱阳市| 正阳县| 桃源县| 宜阳县| 靖安县| 溧阳市| 虹口区| 永宁县| 红河县| 孟州市| 泗洪县| 湟源县| 罗田县| 吉木萨尔县| 阜南县| 托克逊县| 巨野县| 富蕴县| 那坡县| 连山| 巴林右旗| 临高县| 庄河市| 余庆县| 墨脱县| 金昌市| 许昌市| 门头沟区| 扬州市| 沁阳市| 贞丰县| 湘阴县| 县级市| 江川县|