Java 通用 List 中文排序方法

2021-08-21 09:49:29 字數 1125 閱讀 7867

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...