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这个字段有英文,那么将排到所有汉字前面,总体来说,优先级是:英文字母>汉字。