Java數組排序:Arrays.sort()用法,實現數組升序

數組排序是編程中常見的操作,當我們有一組無序的數據時,排序可以讓數據更有序,方便後續的查找、分析或展示。在Java中,處理數組排序的常用工具是Arrays類中的sort()方法。接下來,我們就來學習如何使用Arrays.sort()實現數組的升序排序,以及相關的注意事項。

一、Arrays.sort()簡介

要使用Arrays.sort(),首先需要導入java.util.Arrays包(這是Java提供的工具類包)。導入語句如下:

import java.util.Arrays;

Arrays.sort()可以對數組進行排序,默認按升序排列(從小到大)。

二、基本數據類型數組的升序排序

對於intdoublechar等基本數據類型數組,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'小。

四、注意事項

  1. 必須導入Arrays:如果忘記導入import java.util.Arrays;,會編譯報錯“找不到符號”。
  2. 原數組被修改sort()是“原地排序”,調用後原數組的元素順序會改變(例如原數組[5,2,8]會變成[2,5,8])。
  3. 自然順序的一致性
    - 基本類型數組:按數值大小升序(如int1<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包即可使用。基本數據類型數組直接按數值或字符順序排序,字符串數組按字典順序排序。使用時需注意原數組會被修改,且需正確導入包。掌握這一方法能輕鬆處理大多數簡單的數組排序需求。

小夜