話不多說,上代碼
package com.kevin.practice.tmp;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.ToString;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import java.text.Collator;
import java.util.*;
/**
* @Description 測試
* @Author
* @Date 2020/3/3 9:25
*/
@RunWith(JUnit4.class)
public class Test01 {
private List<Employee> initList() {
return Arrays.asList(
new Employee("111", 8, 7777.77),
new Employee("Kevin", 8, 7777.77),
new Employee("張三", 18, 9999.99),
new Employee("李四", 37, 5555.99),
new Employee("王五", 50, 6666.66),
new Employee("趙六", 16, 3333.33),
new Employee("田七", 8, 7777.77),
new Employee("AAAA", 8, 7777.77)
);
}
@Test
public void test01() {
List<Employee> list = initList();
Comparator comparator = Collator.getInstance(Locale.CHINA);
Collections.sort(list, new Comparator<Employee>() {
@Override
public int compare(Employee o1, Employee o2) {
return comparator.compare(o1.getName(), o2.getName());
}
});
list.stream().forEach(System.out::println);
}
@Data
@AllArgsConstructor
@ToString
public static class Employee {
private String name;
private int age;
private double income;
}
}
看一下運行結果:

這里添加數字與字母,如果存在數字,字母,中文情況下,排序規則如下:
數字 -> 字母 -> 中文
