服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - Java使用Collections.sort对中文进行排序方式

Java使用Collections.sort对中文进行排序方式

2022-07-16 11:54七岁成熟时 Java教程

这篇文章主要介绍了Java使用Collections.sort对中文进行排序方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

使用Collections.sort对中文进行排序

使用collections.sort(List list, Comparator <? super T>)对中文名字进行排序

调用Collator的静态方法getInstance来获取所需语言环境

核心代码:

下面展示 核心代码。

?
1
result= Collator.getInstance(Locale.CHINA).compare(o1.getName(), o2.getName());

全部代码,里面有对数字的排序方法,

?
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
    public class Demo03Sort {
    public static void main(String[] args) {
        ArrayList<Integer> list01 = new ArrayList<>();
        list01.add(1);
        list01.add(4);
        list01.add(3);
        System.out.println(list01);//[1, 4, 3]
        Collections.sort(list01, new Comparator<Integer>() {
            //重写比较的规则
            @Override
            public int compare(Integer o1, Integer o2) {
                //return o2 - o1;//降序排序
                return o1 - o2;//升序排序
            }
        });
        System.out.println(list01);//[1, 3, 4]
        ArrayList<Student> list02 = new ArrayList<>();
       list02.add(new Student("萧炎",22));
       list02.add(new Student("萧薰",20));
       list02.add(new Student("萧玉",24));
        list02.add(new Student("阿玉",22));
        System.out.println(list02);
        //[Student{name='萧炎', age=22}, Student{name='萧薰', age=20}, Student{name='萧玉', age=24}]
        Collections.sort(list02, new Comparator<Student>() {
            @Override
            public int compare(Student o1, Student o2) {
                //按照年龄升序排序
                int result = o1.getAge() - o2.getAge();
                //如果两人的年龄相同,在使用姓名的第一个字比较
                if(result == 0 ){
                    //result = o1.getName().charAt(0) - o2.getName().charAt(0);
                    //按照中文名称排序
                    result= Collator.getInstance(Locale.CHINA).compare(o1.getName(), o2.getName());
                }
                return result;
            }
        });
        System.out.println(list02);
        //未按照中文排序的结果:[Student{name='萧薰', age=20}, Student{name='萧炎', age=22}, Student{name='阿玉', age=22}, Student{name='萧玉', age=24}]
       //按照中文排序的结果:[Student{name='萧薰', age=20}, Student{name='阿玉', age=22}, Student{name='萧炎', age=22}, Student{name='萧玉', age=24}]
    }
}

Collections.sort 排序 注解

逆序:

Java使用Collections.sort对中文进行排序方式

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/weixin_44246836/article/details/107250479/

延伸 · 阅读

精彩推荐