Java 基础教程

Java 面向对象

Java 高级教程

Java 笔记

Java FAQ

java排序sort方法


Java 中的排序可以使用 Arrays.sort() 方法进行,该方法使用了 TimSort 算法(一种混合了归并排序和插入排序的算法),它在处理具有局部有序性的数据时表现出色。下面我会介绍几种不同的排序方式,并提供相应的示例代码。

使用 Arrays.sort()

这是最简单的排序方式,直接使用 Java 标准库提供的排序方法。它适用于大多数排序需求,但不适用于自定义排序规则。

import java.util.Arrays;

public class ArraySortExample {
    public static void main(String[] args) {
        int[] arr = { 5, 2, 8, 1, 3 };
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));
    }
}

自定义排序规则

如果需要根据自定义规则对对象进行排序,可以使用 Comparator 接口,并将其传递给 Arrays.sort() 方法。

import java.util.Arrays;
import java.util.Comparator;

public class CustomSortExample {
    public static void main(String[] args) {
        String[] names = { "Alice", "Eve", "Bob", "David" };

        // 使用匿名内部类创建自定义比较器
        Arrays.sort(names, new Comparator<String>() {
            @Override
            public int compare(String s1, String s2) {
                return s1.length() - s2.length();
            }
        });

        System.out.println(Arrays.toString(names));
    }
}

Maven 和 Gradle 依赖坐标

对于上述两种方法,不需要引入额外的依赖库,因为它们都是 Java 标准库的一部分。

如果你需要更高级的排序算法或者对大数据集的排序性能要求较高,你可以考虑使用第三方库,比如 Apache Commons Collections 或 Google Guava。

使用 Apache Commons Collections

添加 Apache Commons Collections 的 Maven 依赖:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-collections4</artifactId>
    <version>4.4</version>
</dependency>

使用 ComparatorUtils 类进行排序:

import org.apache.commons.collections4.ComparatorUtils;
import org.apache.commons.collections4.ListUtils;

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

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

        Comparator<String> lengthComparator = ComparatorUtils.naturalComparator();
        List<String> sortedNames = ListUtils.collate(names, lengthComparator);

        System.out.println(sortedNames);
    }
}

使用 Google Guava

添加 Google Guava 的 Maven 依赖:

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>30.1-jre</version>
</dependency>

使用 Ordering 类进行排序:

import com.google.common.collect.Ordering;

import java.util.List;

public class GuavaSortExample {
    public static void main(String[] args) {
        List<String> names = ImmutableList.of("Alice", "Eve", "Bob", "David");

        Ordering<String> lengthOrdering = Ordering.natural();
        List<String> sortedNames = lengthOrdering.sortedCopy(names);

        System.out.println(sortedNames);
    }
}

以上是几种排序的实现方式,每种方式都有不同的适用场景和优缺点。你可以根据自己的需求选择合适的方法。

在Java中,使用`Comparator`接口可以自定义排序逻辑,以便在排序时按照你的需求对对象进行比较和排序。创建一个匿名内部类实现`Co ...
Linux sort 命令将文件进行排序,并将排序结果标准输出。它既可以从特定的文件,也可以从 stdin 中获取输入。sort 玲玲将文件 ...
在Python中,你可以使用多种方式对列表进行排序,包括使用内置的`sort`方法,使用`sorted`函数,以及使用自定义排序函数。示例代 ...
##经典排序算法的实现###冒泡排序(BubbleSort)冒泡排序是一种简单的比较排序算法,它通过反复交换相邻的元素来实现排序。示例代码: ...
SORT命令返回或保存指定列表、集合、有序集合key中经过排序的元素。 ...