List集合中的對象按中文首字母排序


話不多說,上代碼


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;
    }
}

看一下運行結果:


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM