Java中List如何排序呢?

欣喜 Java每日一问 发布时间:2025-03-25 10:21:22 阅读数:11023 1
下文笔者讲述list排序的方法及示例分享,如下所示

List排序的实现思路

使用 Collections.sort() 
  或
     List自身sort()方法进行排序

1.使用`Collections.sort()`方法

`Collections.sort()`方法
   可以对实现List接口集合进行排序。
   它需要导入java.util.Collections类
 
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class SortListExample {
    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>();
        numbers.add(15);
        numbers.add(12);
        numbers.add(19);
        numbers.add(11);

        //使用Collections.sort()方法
		//进行排序
        Collections.sort(numbers);

        //输出排序后的列表
        System.out.println("Sorted List: " + numbers);
    }
}

========输出结果=======
Sorted List: [11,12,15,19]

自定义排序

需要自定义排序规则
 可以传递一个`Comparator`对象

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class CustomSortExample {
    public static void main(String[] args) {
        List<String> names = new ArrayList<>();
        names.add("Alice");
        names.add("Bob");
        names.add("Charlie");

        // 使用自定义 Comparator 进行排序
        Collections.sort(names, new Comparator<String>() {
            @Override
            public int compare(String s1, String s2) {
                return s2.compareTo(s1); // 降序排序
            }
        });

        // 输出排序后的列表
        System.out.println("Sorted List (Descending): " + names);
    }
}

====运行以上代码,输出以下信息======

Sorted List (Descending): [Charlie, Bob, Alice]

2.使用`List.sort()`方法

`List`接口引入`sort()`方法
可直接对`List`进行排序

import java.util.ArrayList;
import java.util.List;

public class ListSortExample {
    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>();
        numbers.add(5);
        numbers.add(2);
        numbers.add(9);
        numbers.add(1);

        // 使用 List.sort() 方法进行排序
        numbers.sort(null); // null 表示使用自然顺序

        // 输出排序后的列表
        System.out.println("Sorted List: " + numbers);
    }
}

===运行以上代码,将输出以下信息========

Sorted List: [1, 2, 5, 9]

自定义排序

传递一个`Comparator`对象
进行自定义排序

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

public class CustomListSortExample {
    public static void main(String[] args) {
        List<String> names = new ArrayList<>();
        names.add("Alice");
        names.add("Bob");
        names.add("Charlie");

        // 使用自定义 Comparator 进行排序
        names.sort(new Comparator<String>() {
            @Override
            public int compare(String s1, String s2) {
                return s2.compareTo(s1); // 降序排序
            }
        });

        // 输出排序后的列表
        System.out.println("Sorted List (Descending): " + names);
    }
}

=====运行以上代码,将输出以下信息=====

Sorted List (Descending): [Charlie, Bob, Alice]

使用 Lambda 表达式进行自定义排序


Java 8 引入了 Lambda 表达式,使得自定义排序更加简洁。


import java.util.ArrayList;
import java.util.List;

public class LambdaSortExample {
    public static void main(String[] args) {
        List<String> names = new ArrayList<>();
        names.add("Alice");
        names.add("Bob");
        names.add("Charlie");

        // 使用 Lambda 表达式进行自定义排序
        names.sort((s1, s2) -> s2.compareTo(s1)); // 降序排序

        // 输出排序后的列表
        System.out.println("Sorted List (Descending): " + names);
    }
}

====输出结果

Sorted List (Descending): [Charlie, Bob, Alice]

使用方法引用进行自定义排序

Java 8还引入方法引用
 可以进一步简化代码。


import java.util.ArrayList;
import java.util.List;

public class MethodReferenceSortExample {
    public static void main(String[] args) {
        List<String> names = new ArrayList<>();
        names.add("Alice");
        names.add("Bob");
        names.add("Charlie");

        // 使用方法引用进行自定义排序
        names.sort(String::compareToIgnoreCase); // 按忽略大小写排序

        // 输出排序后的列表
        System.out.println("Sorted List (Case Insensitive): " + names);
    }
}

===运行以上代码,将输出以下信息=====

Sorted List (Case Insensitive): [Alice, Bob, Charlie]
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaProblem/202503/8401.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者