Java中 集合/对象按中文首字母排序

代码实现如下:

1、实体

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import lombok.Data;
 
@Data
public class Car
 
{
    private Integer id;
 
    private String name;
 
    private Integer number;
 
    private Integer price;
 
    private String leader;
 
   
}

 

2、测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import com.temporary.model.Car;
 
import java.text.Collator;
import java.util.*;
import java.util.stream.Collectors;
 
/**
 * @author Han
 * @Description
 * @date 2022/8/25
 */
public class Test037
{
    public static void main(String[] args)
    {
        List<Car> cars = new ArrayList();
 
        Car car1 = new Car();
        car1.setName("雅阁");
        cars.add(car1);
 
        car1 = new Car();
        car1.setName("奔驰");
        cars.add(car1);
 
        car1 = new Car();
        car1.setName("奥迪");
        cars.add(car1);
 
        car1 = new Car();
        car1.setName("凯美瑞");
        cars.add(car1);
 
        car1 = new Car();
        car1.setName("君威");
        cars.add(car1);
 
        // 1 通过java 8 stream流进行处理
        Collection<String> strings = cars.stream().map(Car::getName).sorted(Collator.getInstance(Locale.CHINA)).collect(Collectors.toList());
         
        //2 对集合对象排序 还是按照名称
        sort(cars);
    }
     
    public static void sort(List<Car> carList)
    {
        // 获取中文环境
        Collator comparator = Collator.getInstance(Locale.CHINA);
        carList.sort((e1, e2) -> {
            return comparator.compare(e1.getName(), e2.getName());
        });
         
        carList.forEach(System.out::println);
        System.out.println(carList);
    }
}

 

3、运行结果

 

posted @   云村的王子  阅读(451)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示