import java.util.* public class SortArray { int a[]={20,10,50,40,30,70,60,80,90,100}; public static void main(String[]args) { SortArray s = new SortArray(); Arrays.sort(a); for(int i = 0; i < 10; i++) System.out.print(a[i] + " "); } }
时间: 2025-06-24 14:36:18 浏览: 20
### Java `Arrays.sort()` 的使用方法及示例
`Arrays.sort()` 是 Java 提供的一个用于对数组进行排序的方法,位于 `java.util.Arrays` 类中。该方法支持多种数据类型的数组排序,并允许通过自定义比较器来实现特定的排序逻辑。
#### 基本语法
对于基本数据类型和对象数组,可以分别调用不同的重载版本:
- **基本数据类型**:
```java
Arrays.sort(array);
```
- **对象数组**:
如果需要按照自然顺序排序,则可以直接调用;如果需要定制排序规则,则需传入一个实现了 `Comparator` 接口的对象作为参数。
```java
Arrays.sort(objectArray, comparator);
```
---
#### 示例代码
##### 对整型数组进行升序排序
以下是针对整数数组的基本排序示例[^1]:
```java
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] numbers = {5, 2, 9, 1, 5, 6};
Arrays.sort(numbers);
System.out.println(Arrays.toString(numbers)); // 输出: [1, 2, 5, 5, 6, 9]
}
}
```
##### 自定义字符串数组排序
当处理复杂的数据结构(如字符串)时,可以通过传递 `Comparator` 来指定排序规则[^3]。下面的例子展示了如何按拼接后的数值大小对字符串数组进行排序:
```java
import java.util.Arrays;
import java.util.Comparator;
public class Main {
public static void main(String[] args) {
String[] numStringArray = {"30", "3", "9", "1"};
Arrays.sort(numStringArray, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return (s1 + s2).compareTo(s2 + s1);
}
});
System.out.println(Arrays.toString(numStringArray)); // 输出可能为 ["1", "3", "30", "9"]
}
}
```
##### 使用 Lambda 表达式简化自定义排序
从 Java 8 开始,Lambda 表达式让编写 `Comparator` 更加简洁[^3]。以下是对相同问题的优化版实现:
```java
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
String[] numStringArray = {"30", "3", "9", "1"};
Arrays.sort(numStringArray, (s1, s2) -> (s1 + s2).compareTo(s2 + s1));
System.out.println(Arrays.toString(numStringArray)); // 输出可能为 ["1", "3", "30", "9"]
}
}
```
---
#### 多维数组排序
虽然 `Arrays.sort()` 主要适用于一维数组,但对于二维或多维数组,也可以逐层应用此方法。例如,对嵌套的一维数组按其第一个元素排序[^2]:
```java
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
Integer[][] matrix = {{3, 4}, {1, 2}, {5, 6}};
Arrays.sort(matrix, (a, b) -> a[0].compareTo(b[0]));
for (Integer[] row : matrix) {
System.out.println(Arrays.toString(row));
}
/*
* 输出:
* [1, 2]
* [3, 4]
* [5, 6]
*/
}
}
```
---
#### 性能分析
`Arrays.sort()` 实现了高效的排序算法。对于原始数据类型,默认采用双轴快速排序(Dual-Pivot Quicksort),而对于对象数组则基于 Timsort 算法。这些算法的时间复杂度通常为 O(n log n)[^1]。
---
阅读全文
相关推荐



















