Java中实现对集合中对象按中文首字母排序

时间:2023-03-10 03:34:46
Java中实现对集合中对象按中文首字母排序

有一个person对象如下:

public class Person {
private String id;private String nam;
}

一个list集合如下:

List<Employee> personList= Arrays.asList(
new Person("1",“张小同"),
new Person("2",”靖大同"),
new Person("3",”王五"),
new Person("4",”赵三"),
new Person("5",”刘小刀")
);

按中文首字母排序:

public void sort(List<Person> personList){
//获取中文环境
Comparator comparator = Collator.getInstance(Locale.CHINA);
//进行排序
Collections.sort(personList, (p1, p2) -> {
return comparator.compare(p1.getName(), p2.getName());
});
//打印结果
        personList.stream().forEach(System.out::println); 
}

注意,如果name这个字段有英文,那么将排到所有汉字前面,总体来说,优先级是:英文字母>汉字。