当前位置:首页 > 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()类似:

java中集合如何排序

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排序:

java中集合如何排序

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):

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

注意事项

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

标签: java
分享给朋友:

相关文章

java如何运行

java如何运行

运行Java程序的基本方法 Java程序的运行需要经过编写、编译和执行三个主要阶段。以下是具体步骤: 编写Java源代码 创建一个以.java为后缀的文件,例如HelloWorld.java。文件内…

java如何编程

java如何编程

Java编程基础 Java是一种面向对象的编程语言,广泛应用于企业级开发、移动应用(Android)等领域。以下是Java编程的核心步骤和示例。 环境搭建 安装JDK 从Oracle官网下载适…

java如何调用接口

java如何调用接口

调用接口的基本方法 在Java中调用接口通常涉及实现接口或使用接口引用对象。以下是几种常见场景的示例: 定义接口 public interface MyInterface { void d…

如何自学java

如何自学java

选择合适的学习资源 从官方文档开始,Oracle提供的Java官方教程(Java Tutorials)是权威且免费的学习资料。在线平台如Codecademy、Coursera或Udemy提供互动式课程…

如何安装java环境

如何安装java环境

下载JDK安装包 访问Oracle官方网站或OpenJDK项目页面,选择适合操作系统的JDK版本(如Windows、macOS或Linux)。确保下载与系统架构匹配的版本(32位或64位)。 运行…

java如何创建包

java如何创建包

创建Java包的步骤 在Java中,包(package)用于组织和管理类文件,避免命名冲突。以下是创建Java包的详细方法: 定义包名 在Java源文件的开头使用package关键字声明包名。包名…