当前位置:首页 > Java

java中集合如何排序

2026-03-04 07:27:55Java

使用Collections.sort方法排序List

对实现了List接口的集合(如ArrayListLinkedList)排序,可直接调用Collections.sort()方法。默认按自然顺序(如数字升序、字符串字典序)排序。

List<Integer> numbers = Arrays.asList(5, 3, 9, 1);
Collections.sort(numbers); // 升序排序:[1, 3, 5, 9]

若需自定义排序规则,传入Comparator

Collections.sort(numbers, (a, b) -> b - a); // 降序排序:[9, 5, 3, 1]

使用List.sort方法

Java 8+的List接口直接提供sort()方法,功能与Collections.sort()类似:

List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
names.sort(Comparator.naturalOrder()); // 字典序排序
names.sort(Comparator.reverseOrder()); // 逆字典序

自定义Comparator排序

通过实现Comparator接口定义复杂排序逻辑。例如按对象属性排序:

class Person {
    String name;
    int age;
    // 构造方法、getter省略
}

List<Person> people = Arrays.asList(new Person("Bob", 25), new Person("Alice", 30));
people.sort(Comparator.comparingInt(Person::getAge)); // 按年龄升序
people.sort(Comparator.comparing(Person::getName).reversed()); // 按名字降序

使用TreeSet自动排序

TreeSet在插入元素时自动按自然顺序或指定Comparator排序:

Set<Integer> sortedSet = new TreeSet<>((a, b) -> b - a);
sortedSet.add(3); 
sortedSet.add(1); // 自动保持降序:[3, 1]

数组排序

对数组使用Arrays.sort()方法:

int[] arr = {4, 2, 7};
Arrays.sort(arr); // 升序排序:[2, 4, 7]
String[] strs = {"banana", "apple"};
Arrays.sort(strs, String.CASE_INSENSITIVE_ORDER); // 忽略大小写排序

并行排序

Java 8+支持并行排序大数据集(parallelSort):

java中集合如何排序

int[] largeArray = new int[100000];
Arrays.parallelSort(largeArray); // 利用多线程加速

注意事项

  • 确保排序对象实现Comparable接口(自然排序),或提供Comparator(自定义排序)。
  • HashSet等无序集合需先转换为ListTreeSet再排序。
  • 复杂对象排序可链式调用Comparator(如thenComparing)。

标签: java
分享给朋友:

相关文章

java如何编译

java如何编译

编译Java程序的基本步骤 安装JDK(Java Development Kit)并配置环境变量。确保javac和java命令可在命令行中运行。JDK是编译和运行Java程序的必备工具。 创建Jav…

java如何学习

java如何学习

学习Java的有效方法 理解基础概念 Java是一门面向对象的编程语言,掌握基础概念如变量、数据类型、运算符、控制语句(if-else、循环)是必要的。面向对象的核心概念包括类、对象、继承、多态和封装…

java如何输出数组

java如何输出数组

输出数组的方法 在Java中,输出数组内容有多种方式,具体取决于数组类型和输出格式需求。以下是几种常见的方法: 使用Arrays.toString()方法 适用于一维数组,直接调用Arrays.to…

java如何创建对象

java如何创建对象

创建对象的基本方法 在Java中,创建对象主要通过new关键字调用构造函数完成。基本语法为: ClassName objectName = new ClassName(); 例如创建String对象…

java如何打印数组

java如何打印数组

打印数组的方法 在Java中,打印数组有多种方式,以下是几种常见的方法: 使用Arrays.toString()方法 这种方法适用于一维数组,可以快速将数组转换为字符串形式输出: int[] a…

java程序如何打包

java程序如何打包

打包Java程序的方法 使用JAR打包 Java程序可以通过JAR(Java Archive)格式打包,这是一种常见的压缩格式,适用于包含多个类文件和资源的项目。以下是使用JAR打包的步骤: 确保项…