//1.对数组中的中文按照拼音A-Z排序
private static void sortArray() {
Comparator<Object> sortComparator = Collator. getInstance (java.util.Locale.CHINA);
String[] companyArray = {" 腾讯 ", " 阿里巴巴 ", " 百度 ", " 华为 ", " 字节跳动 ", "小米"};
Arrays.sort (companyArray, sort Comparator);
Stream.of(companyArray).forEach(System.out::println);
}
public static void main(String[] args) {
//1.对数组中的中文按照拼音A-Z排序
sortArray();
}
阿里巴巴
百度
华为
腾讯
小米
字节跳动
//2.对集合中的对象数据 指定的字段 按照中文拼音A-Z排序
package com.wangguo.entity;
import java.util.Comparator;
//2.1.实现Comparator 接口
public class User implements Comparator<User> {
private String userName;
private int age;
public User(String userName, int age) {
this.userName = userName;
this.age = age;
}
public User() {
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@ Override
public String toString() {
return "User{" +
"userName='" + userName + '\'' +
", age=" + age +
'}';
}
//2.2.重写比较方法
@Override
public int compare(User o1, User o2) {
return o1.getUserName().compareTo(o2.getUserName());
}
}
public static void main(String[] args) {
//2.对集合中的对象数据 指定的字段 按照中文拼音A-Z排序
List<User> listUsers = new ArrayList<>();
listUsers.add(new User("谢大宝", 11));//X
listUsers.add(new User("李四", 14));//L
listUsers.add(new User("王五", 17));//W
listUsers.add(new User("赵六", 19));//Z
//2.3定义排序规则 List<T> list, Comparator<? super T> c
Collections.sort(listUsers,(user1,user2)->{
Comparator<Object> com = Collator.getInstance(java.util.Locale.CHINA);
return com.compare(user1.getUserName(), user2.getUserName());
}
);
listUsers.stream().forEach(System.out::println);
}
User{userName='李四', age=14}
User{userName='王五', age=17}
User{userName='谢大宝', age=11}
User{userName='赵六', age=19}