數組排序是編程中常見的操作,當我們有一組無序的數據時,排序可以讓數據更有序,方便後續的查找、分析或展示。在Java中,處理數組排序的常用工具是Arrays類中的sort()方法。接下來,我們就來學習如何使用Arrays.sort()實現數組的升序排序,以及相關的注意事項。
一、Arrays.sort()簡介¶
要使用Arrays.sort(),首先需要導入java.util.Arrays包(這是Java提供的工具類包)。導入語句如下:
import java.util.Arrays;
Arrays.sort()可以對數組進行排序,默認按升序排列(從小到大)。
二、基本數據類型數組的升序排序¶
對於int、double、char等基本數據類型數組,Arrays.sort()會按照數值大小或字符的自然順序(從小到大)排序。
示例:對int數組排序¶
import java.util.Arrays;
public class IntArraySort {
public static void main(String[] args) {
// 定義一個無序的int數組
int[] numbers = {5, 2, 8, 1, 9, 3};
// 調用sort()方法進行升序排序
Arrays.sort(numbers);
// 輸出排序後的數組
System.out.println("排序後的int數組:");
for (int num : numbers) {
System.out.print(num + " "); // 輸出:1 2 3 5 8 9
}
}
}
關鍵點:
- sort()會直接修改原數組的順序(即“原地排序”),不會返回新數組。
- 排序後數組變爲升序(從小到大)。
其他基本類型示例¶
double數組:double[] scores = {85.5, 92.0, 78.3};排序後爲[78.3, 85.5, 92.0]。char數組:char[] chars = {'c', 'a', 'b'};排序後爲['a', 'b', 'c'](按字符的Unicode編碼順序)。
三、字符串數組的升序排序¶
對於字符串數組(引用類型),Arrays.sort()會按照字典順序(即字符的Unicode編碼順序)排序。
示例:對字符串數組排序¶
import java.util.Arrays;
public class StringArraySort {
public static void main(String[] args) {
// 定義一個無序的字符串數組
String[] fruits = {"banana", "apple", "cherry", "date"};
// 調用sort()方法排序
Arrays.sort(fruits);
// 輸出排序結果
System.out.println("排序後的字符串數組:");
for (String fruit : fruits) {
System.out.print(fruit + " "); // 輸出:apple banana cherry date
}
}
}
關鍵點:
- 字符串排序是按字典順序(類似字典中查單詞的順序),例如"apple"在"banana"前面,因爲字母'a'的Unicode編碼比'b'小。
四、注意事項¶
- 必須導入
Arrays包:如果忘記導入import java.util.Arrays;,會編譯報錯“找不到符號”。 - 原數組被修改:
sort()是“原地排序”,調用後原數組的元素順序會改變(例如原數組[5,2,8]會變成[2,5,8])。 - 自然順序的一致性:
- 基本類型數組:按數值大小升序(如int的1<2<3)。
- 字符串數組:按字符的Unicode編碼順序(如"a"<"b"<"c")。
五、擴展:自定義對象數組的排序¶
如果是自定義對象數組(如Student對象數組),sort()需要數組元素實現Comparable接口,或通過Comparator指定排序規則。例如:
// 假設定義了Student類,包含姓名和分數
class Student implements Comparable<Student> {
private String name;
private int score;
// 實現Comparable接口的compareTo方法,按分數升序排序
@Override
public int compareTo(Student o) {
return this.score - o.score; // 分數小的在前
}
}
// 使用時:
Student[] students = {new Student("張三", 80), new Student("李四", 95)};
Arrays.sort(students); // 按分數升序排序
(這部分爲進階內容,初學者可後續學習)
總結¶
Arrays.sort()是Java中實現數組升序排序的基礎工具,通過導入java.util.Arrays包即可使用。基本數據類型數組直接按數值或字符順序排序,字符串數組按字典順序排序。使用時需注意原數組會被修改,且需正確導入包。掌握這一方法能輕鬆處理大多數簡單的數組排序需求。