两个类
一个User1类
一个ObjectSort类
package com.collectionPackage;
/**
* @PROJECT_NAME: test_project
* @DESCRIPTION:
* @USER: huishao
* @DATE: 2021/5/31 15:45
*/
public class User1 {
private String name;
private int age;
public User1() {
}
public User1(String name, int age) {
this.name = name;
this.age = age;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package com.collectionPackage;
import java.text.Collator;
import java.util.*;
/**
* @PROJECT_NAME: test_project
* @DESCRIPTION: Java中实现对集合中对象按中文首字母排序
* @DATE: 2021/5/31 15:44
*/
public class ObjectSort {
public static void main(String args[]){
//一个list集合
List<User1> list = Arrays.asList(
new User1("大卫",20),
new User1("包子",30),
new User1("曹操",10),
new User1("zee",80),
new User1("aoe",50)
);
ObjectSort os = new ObjectSort();
os.sort(list);
}
//按中文首字母排序
public void sort(List<User1> list){
//获取中文环境
Comparator comparator = Collator.getInstance(Locale.CHINA);
//进行排序 排序规则:先按汉字拼音的首字母排序,如果有英文,英文在所有汉字的最前边
Collections.sort(list, (p1, p2) ->{
return comparator.compare(p1.getName(), p2.getName());
});
for (User1 user1: list) {
System.out.println(user1.getName()+" "+user1.getAge());
}
};
}
执行结果