ArrayList物件排序

青樓艾小生發表於2018-01-16

前言:最近對收音機的開發,遇到一個需求,將收藏列表顯示在前,電臺列表顯示在後,所以需要對列表進行物件排序,在此做一個總結.

步驟1 建立比較器,指定排序規則

匯入此包 java.util.Comparator

comparator = new Comparator<RadioNode>() {
            public int compare(RadioNode s1, RadioNode s2) {
                if (s1.isFavor == s2.isFavor) {
                    return s2.frequent - s1.frequent;
                }else{
                    if(s1.isFavor)  return -1;
                    if(s2.isFavor)  return 1;
                }
                return -1;
            }
        };

這裡面有兩個物件s1和s2,下面是制定的比較規則,如果isFavor相同,則比較frequent
返回1表示s1比s2大,則s1的位置不動,s2繼續與後面的比較
返回0表示倆一樣大,位置不變
返回-1表示s1與s2交換位置,s1繼續按規則比較

步驟2 將集合傳入

匯入此包java.util.Collections

Collections.sort(favorList,comparator);

end
感謝android


相關文章