關於集合的排序

2021-08-13 19:13:23 字數 1113 閱讀 7702

場景:從mongo庫查詢不同表的時間字段,獲取所有年份,按照從大到小排序,並去除重複年份

挖坑過程:

1.首先想到treeset集合的特性,int自然序列排序,去重,試了一試發現是順序排列(由於懶放棄了自己寫比較器。)

2.然後想到用sql降序排好序,在利用set集合的去重機制,利用linkedhashset按儲存循序排列的特點實現,後發現mongo兩個集合查詢的年份整合到一起還是亂序。

3.前幾天用看了一些關於集合的文章,想到集合的一些tree型別可以自定義排序,於是又查了些關於集合排序的資料,突然發現treeset的預設排序也是用比較器寫的,integer已經幫實現了比較器。arrays.sort(array);

內部也是使用了比較器。好吧那就自己寫乙個比較器吧。如下

class mycomparator implements comparatorelse if(a < b)

return 0;

}}

使用:setset_=new treeset(new mycomparator());

4.比較器也可以實現根據類中的字段排序

例:

class activitylitsaletopsort implements comparator else if (k1.gettopamount() > k2.gettopamount())  else 

}}

public class activitylitsaletopdto {

private string litid;

private string topname;

private double topamount=0.0;

private integer topvolume=0;

private integer toporder=0;

private double toppayrate=0.0;

使用:

collections.sort(topdtos, new activitylitsaletopsort());

關於set集合的排序問題

1.set集合 set集合是一種不包含重複元素的collection,set集合中主要有兩個類 hashset類和treeset類。一般情況我們使用hashset比較多。因為set集合預設是無序的。當我們想要對set集合進行排序時,會使用到treeset。2.hashset的使用及遍歷 progra...

集合的排序

方法sort 對集合裡的元素進行排序操作 預設從小到大排序 方法reverse 對集合裡的元素進行反轉操作public void m15 除了預設的排序方法外,還可以實現集合的自定義排序 自然排序 如果集合裡的元素想自然排序,那麼要求集合裡的元素的應用型別必須實現comparable介面,重寫com...

關於集合的拷貝

昨天遇到的了乙個問題,就是說,我把一些經常使用很少更新的資料放到乙個靜態變數中,在取值的使用直接賦值,由於賦值後的字段需要進行刪除資料,結果發現執行一段時間之後發現,集合為空了,經查詢發現原來物件的賦值是引用,如果操作這個引用物件就是對那個靜態變數做操作。如何解決這個問題哪?乙個方式就是在需要這個靜...