這篇文章主要講解了Java實現(xiàn)儲存對象并按對象某屬排序的方法,內(nèi)容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。
成都創(chuàng)新互聯(lián)不只是一家網(wǎng)站建設的網(wǎng)絡公司;我們對營銷、技術、服務都有自己獨特見解,公司采取“創(chuàng)意+綜合+營銷”一體化的方式為您提供更專業(yè)的服務!我們經(jīng)歷的每一步也許不一定是最完美的,但每一步都有值得深思的意義。我們珍視每一份信任,關注我們的網(wǎng)站設計制作、做網(wǎng)站質(zhì)量和服務品質(zhì),在得到用戶滿意的同時,也能得到同行業(yè)的專業(yè)認可,能夠為行業(yè)創(chuàng)新發(fā)展助力。未來將繼續(xù)專注于技術創(chuàng)新,服務升級,滿足企業(yè)一站式全網(wǎng)整合營銷推廣需求,讓再小的高端網(wǎng)站設計也能產(chǎn)生價值!在編程的時候,經(jīng)常會出現(xiàn)對某一種類的對象們按照某屬性進行自定義的排序,比如:學生對象按照age大小排序。
有一種方法就是把age單獨提出來排好序,然后按照ages數(shù)組的順序把students重存一次。但是這樣太繁瑣了,有沒有更好的方法呢?
有滴~
第一種,可以實現(xiàn)邊添加邊排序,需要用到TreeSet。
第二種,用數(shù)組存放對象們,但是不需單獨取出某屬性排列好再重存,而是在原數(shù)組上用比較器重新排一次序。需要用到Arrays.sort(arr,comparator)。
第三種,用集合類中的list的子類存放對象們,然后排序。需要用到Collections.sort(list,comparator)。
以下分別討論:
一、TreeSet
創(chuàng)建:
序號 | 構(gòu)造函數(shù)的說明 |
---|---|
1 | TreeSet () 此構(gòu)造函數(shù)構(gòu)造空樹集,將在根據(jù)其元素的自然順序按升序排序。 |
2 | TreeSet (集合 c) 此構(gòu)造函數(shù)生成樹的集合,它包含的元素的集合 c。 |
3 | TreeSet (比較器 comp) 此構(gòu)造函數(shù)構(gòu)造一個空樹集,將根據(jù)給定的比較器進行排序。 |
增:
boolean | add(E e) 將指定的元素添加到這套,如果它已不存在。 |
boolean | addAll(Collection<? extends E> c) 在加入這一組指定的集合中添加的所有元素。 |
刪:
boolean | remove(Object o) 從這一組中移除指定的元素,如果它存在。 |
void | clear() 從這一組中移除所有元素。 |
查:
Comparator<? super E> | comparator() 返回用于排序在這集,或空元素,如果這套使用自然排序其元素的比較。 |
boolean | contains(Object o) 如果此集合包含指定的元素,則返回true 。 |
boolean | isEmpty() 如果此集不包含任何元素,則返回true 。 |
Iterator | iterator() 返回迭代器中這套以升序排序的元素。 |
| |
int | size() 在這套 (其基數(shù)) 中返回的元素的數(shù)目。 |
|
遍歷:通過迭代器遍歷。
Iterator it=treeset.iterator(); while(it.hasNext()){ //操作當前結(jié)點。 }
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。