comparator 比較器可以對兩個雷進行比較,但是寫起來比較麻煩,不利於使用,可以寫乙個公共的類,使用 apache commons包來實現。不過這種實現方式有乙個問題,中文排序是按照 unicode 字元碼來比較的,不是根據拼音,排序後近似亂序,效果不好。需要指定中文排序方式。
需要引入 apache-common 的 beanutils、collections
· 單個排序
/**
* list 陣列排序
*@param
*/@suppresswarnings("unchecked")
public
static
void
sort(list<?> list, string key, string desc)
};comparator = comparatorutils.nulllowcomparator(comparator);
if ("desc".equals(desc))
collections.sort(list, new beancomparator(key, comparator));
} catch (exception e)
}
· 組合排序/**
* 組合排序
*/@suppresswarnings("unchecked")
public
static
void
sortmulti(list<?> list, string desc, string... keys)
};comparator = comparatorutils.nulllowcomparator(comparator);
if ("desc".equals(desc))
// 建立乙個排序鏈
comparatorchainmultisort = new comparatorchain<>();
for (string key : keys)
// 開始真正的排序,按照先新增先排序的規則
collections.sort(list, multisort);
} catch (exception e)
}
Java之List集合排序
1.類實現comparable 介面 public class book implements comparable public void setbookname string bookname public double getunitprice public void setunitprice...
Java基礎系列 List排序
public static super t void sort listlist public static void sort listlist,comparator c 複製 public class objectsort class studentcomparator implements c...
list對數字,字母,中文的排序
使用collections.sort 方法對於英文本母排序,是先比較首字母,首字母相同比較後面字母。使用collections.sort 方法對於中文字元進行排序,並不是按照中文拼音的順序,原因是collator類執行的是區分語言環境的string比較。可呼叫collator的靜態方法getinst...