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

原文地址:https://www.cnblogs.com/JohanChan/p/11937032.html