当前位置:首页 > 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是一门面向对象的编程语言,掌握基础语法是入门的关键。需要了解变量、数据类型、运算符、控制结构(如if-else、for循环、while循环)、数组等概念。可以通过官方文…

java如何配置环境变量

java如何配置环境变量

配置Java环境变量的方法 下载并安装JDK 从Oracle官网或OpenJDK下载适合操作系统的JDK安装包。运行安装程序并按照提示完成安装,记下JDK的安装路径(例如C:\Program File…

java如何遍历map

java如何遍历map

遍历Map的几种方法 在Java中,遍历Map有多种方式,可以根据需求选择合适的方法。以下是常见的几种遍历方式: 使用entrySet遍历 通过entrySet()方法获取键值对的集合,可以同时访问…

java如何创建测试类

java如何创建测试类

创建测试类的基本步骤 在Java中创建测试类通常使用JUnit框架,以下是具体方法: 安装JUnit依赖 对于Maven项目,在pom.xml中添加依赖: <dependency>…

如何系统的学习java

如何系统的学习java

学习Java的基础知识 Java的基础知识包括语法、数据类型、变量、运算符、控制流语句等。可以通过官方文档或入门书籍如《Java核心技术》来掌握这些内容。编写简单的程序练习基础语法,例如打印“Hell…

如何学好java编程

如何学好java编程

理解基础概念 掌握Java的基础语法是学习的起点。变量、数据类型、运算符、控制结构(如循环和条件语句)是核心内容。面向对象编程(OOP)的概念(类、对象、继承、多态、封装)是Java的核心,需深入理解…