Java 数组排序:快速掌握 sort() 方法和自定义排序279


在 Java 中,数组排序是一种将数组元素按特定顺序排列的过程,通常为升序或降序。Java 提供了一个内置的方法 sort(),可以轻松地对数组进行排序。

1. 使用 () 方法进行升序排序

() 方法是 Java 中用于对数组进行原位升序排序的标准方法。它使用快速排序算法,针对大多数情况具有良好的性能。
int[] arr = {5, 2, 8, 3, 1};
(arr);

此代码将 arr 数组排序为 [1, 2, 3, 5, 8] 的升序。

2. 对对象数组使用 ()

对于包含对象的数组,() 方法根据对象的可比较性进行排序。如果对象实现了 Comparable 接口,则可以使用对象自己的比较逻辑进行排序。
class Person implements Comparable {
private String name;
private int age;
@Override
public int compareTo(Person other) {
return - ;
}
}
Person[] people = {new Person("Alice", 25), new Person("Bob", 30), new Person("Carol", 20)};
(people);

此代码将 people 数组按年龄升序排序,因为 Person 类实现了 Comparable 接口。

3. 使用自定义比较器进行排序

有时,您可能需要使用自定义比较逻辑对数组进行排序。Java 提供了 Comparator 接口,允许您定义自己的比较规则。
class CustomComparator implements Comparator {
@Override
public int compare(Integer a, Integer b) {
return b - a; // 降序排序
}
}
Integer[] nums = {5, 2, 8, 3, 1};
(nums, new CustomComparator());

此代码使用自定义比较器将 nums 数组按降序排序。

4. 控制排序顺序

Java 允许您通过指定排序顺序来控制数组排序。使用 () 方法,您可以传入一个 Comparator 实例或 lambda 表达式来指定排序规则。
(arr, (a, b) -> a - b); // 升序排序
(arr, (a, b) -> b - a); // 降序排序

5. 选择排序

除了 () 之外,Java 还提供了其他排序算法,例如选择排序。选择排序通过多次从剩余元素中找到最小值并将其与未排序部分交换,将数组排序为升序。
for (int i = 0; i < - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < ; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}

6. 插入排序

插入排序通过将每个元素插入到前面的已排序部分中,将数组排序为升序。它对于小数组和几乎排序好的数组非常有效。
for (int i = 1; i < ; i++) {
int key = arr[i];
int j = i - 1;
while (j >= 0 && key < arr[j]) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key;
}


Java 提供了多种方法来对数组进行升序排序,从简单的 () 方法到更高级的自定义比较器和排序算法。通过了解这些方法,您可以有效地处理数据并满足您的特定排序需求。

2024-10-24


上一篇:Java 代码优化指南

下一篇:Java 字符串中提取数字