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