TAG: java list 中文 排序 |
package cc.util.List.cnsort;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.text.Collator;
import java.util.Comparator;
import java.util.Locale;
/**
*@author cc
* 用来测试List的中文排序问题
* 注意该程序为非线程安全。
**/
public class Test {
private static List<String> al=new ArrayList<String>();
private static String[] str=new String[17];
/**
* @param args
*/
public static void main(String[] args) {
getlist();
al=comparecn(al);
System.out.println("开始排序");
for (int i = 0; i < al.size(); i++) {
System.out.println(al.get(i));
}
}
private static List<String> getlist(){
str[1]="派发";
str[2]="定制";
str[3]="综合";
str[4]="用户 -->客户 ";
str[5]="考核";
str[6]="LBBQ";
str[7]="用户 -->当前";
str[8]="用户 -->日志";
str[9]="上网";
str[10]="用户 ";
str[11]="用户 -->用户 ";
str[12]="补丁";
str[13]="流量";
str[14]="用户 -->角色 ";
str[15]="定制";
str[16]="定计";
str[0]="访心";
for (int i = 0; i < str.length; i++) {
al.add(str[i]);
}
return al;
}
private static List<String> comparecn(List<String> al2){
Comparator<String> cmr=new StrComparator();
Collections.sort(al2,cmr);
cmr=null;
return al2;
}
/**
*重写list中文排序方法
**/
private static class StrComparator implements Comparator<String> {
public int compare(String o1, String o2) {
return Collator.getInstance(Locale.CHINESE).compare(o1, o2);
}
}
}