java list按字母排序_List集合中的对象按中文首字母排序

本文通过一个测试案例展示了如何使用Java对包含数字、字母和中文的员工列表进行排序,利用`Collator`实例和自定义比较器实现按特定规则排序:数字>字母>中文。代码中创建了一个Employee类,并在JUnit测试中对列表进行排序并打印结果。
摘要由CSDN通过智能技术生成

话不多说,上代码

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 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 list = initList();

Comparator comparator = Collator.getInstance(Locale.CHINA);

Collections.sort(list, new Comparator() {

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

}

}

看一下运行结果:

3e66375e33bcd7a40a5845c2dee8d627.png

这里添加数字与字母,如果存在数字,字母,中文情况下,排序规则如下:

数字 -> 字母 -> 中文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值