1.对于数组的排序方法如下:
String[] names = {"王林", "杨宝", "李镇", "刘迪", "刘波"};
Arrays.sort(names, com.ibm.icu.text.Collator.getInstance(com.ibm.icu.util.ULocale.SIMPLIFIED_CHINESE));//升序;
System.out.println(Arrays.toString(names));
2.对于汉字的排序:可以尝试使用ICU4J会得到更好的结果,特别是姓为某些生僻字的时候,
用com.ibm.icu.text.Collator替换java.text.Collator,用com.ibm.icu.util.ULocale替换java.util.Locale
3.对于枚举类型的enum1.compareTo(enum2)是按照枚举类型值在定义时的先后顺序比较的,越后面的越大,
而不是按照值的字母先后顺序比较的。
比如:List
list1.add("网易汽车");
list1.add("新民汽车网");
list1.add("钛媒体");
list1.add("瘾科技");
list1.add("昕薇网");
list1.add("安倍");
list1.add("中国");
list1.add("中心");
System.out.println(list1.toString());
// Comparator
汉子按照中文首字母排序:
用普通的java.util.Locale.CHINESE排序的效果为:
[安倍, 网易汽车, 新民汽车网, 中国, 中心, 昕薇网, 钛媒体, 瘾科技]
用icu的排序效果为:
[安倍, 钛媒体, 网易汽车, 昕薇网, 新民汽车网, 瘾科技, 中国, 中心]