要实现汉字按首字母排序,主要是设置语言环境,如下语句设置语言环境:


这里用到了Collator类,此类实现了Comparator接口,用他的getInstance就可以用指定的语言环境来构造一个Collator对象:

java实现中文汉字按首字母排序_语言环境

然后用如下语句创建Comparator:


Comparator<Object> com=Collator.getInstance(java.util.Locale.CHINA);


要注意的是Comparator里面的泛型类型一定要是Object类型,因为Collator类实现的Comparator接口里面传入的对象是Object:

java实现中文汉字按首字母排序_语言环境_02


完整的实现代码如下:


import java.text.Collator;  
import java.util.*;
import java.util.Comparator;
public class cpm {
public static void main(String[] args) {
// TODO Auto-generated method stub
Comparator<Object> com=Collator.getInstance(java.util.Locale.CHINA);
String[] newArray={"中山","汕头","广州","安庆","阳江","南京","武汉","北京","安阳","北方"};
List<String> list = Arrays.asList(newArray);
Collections.sort(list, com);
for(String i:list){
System.out.print(i+" ");
}
}
}


输出结果是:

安庆  安阳  北方  北京  广州  南京  汕头  武汉  阳江  中山