Java Arrays 類:初學者的全面指南

引言

你好,未來的 Java 超級巨星!今天,我們將要深入探索 Java Arrays 類的奇妙世界。別擔心你對編程還是新手——我將成為你這段旅程中的友好導遊,一步步為你解釋一切。到了這個教學的結尾,你將能像專家一樣操作數組!

Java - Arrays Class

Java 的 Arrays 類就像是一把瑞士軍刀,用於操作數組。它包含了許多有用的方法,可以在處理這些基本數據結構時讓你的生活變得更加輕鬆。讓我們開始吧!

Arrays 類聲明

在我們深入細節之前,讓我們先來看看 Arrays 類是如何聲明的:

public class Arrays extends Object

這可能看起來有點令人生畏,但別擔心!你只需要知道 Arrays 是 java.util 套件中的一個類。要在你的程序中使用它,你需要像這樣導入它:

import java.util.Arrays;

把這想成是告訴 Java,「嘿,我想要在我的程序中使用那個很酷的 Arrays 工具箱!」

Arrays 類方法

現在,讓我們探索 Arrays 類提供的一些最有用的方法。我將用淺顯易懂的例子向你展示如何使用每一個方法。

1. sort()

sort() 方法就像是你數組的個人組織者。它將元素按升序排列。

int[] numbers = {5, 2, 8, 1, 9};
Arrays.sort(numbers);
System.out.println(Arrays.toString(numbers));
// 輸出:[1, 2, 5, 8, 9]

在這個例子中,我們從一個混亂的數字數組開始,sort() 為我們整理了它。這就像魔法一樣!

2. binarySearch()

binarySearch() 方法就像是一個幫助你在排序後的數組中找到特定元素的偵探。

int[] numbers = {1, 2, 5, 8, 9};
int index = Arrays.binarySearch(numbers, 5);
System.out.println("數字 5 在索引: " + index);
// 輸出:數字 5 在索引: 2

記住,數組必須先排序,否則我們的偵探可能會感到困惑!

3. fill()

fill() 方法就像是一個為你的數組上色的滾筒,將它填滿特定值。

int[] numbers = new int[5];
Arrays.fill(numbers, 42);
System.out.println(Arrays.toString(numbers));
// 輸出:[42, 42, 42, 42, 42]

想像你正在粉刷一堵牆——fill() 做的事情與此類似,但對於你的數組來說!

4. equals()

equals() 方法就像是一個雙胞胎探测器,檢查兩個數組是否具有相同順序的相同元素。

int[] array1 = {1, 2, 3};
int[] array2 = {1, 2, 3};
int[] array3 = {3, 2, 1};

System.out.println(Arrays.equals(array1, array2)); // true
System.out.println(Arrays.equals(array1, array3)); // false

這就像比較兩排舞蹈者——他們需要完全按照相同的順序才能被認為是相等的!

5. copyOf()

copyOf() 方法就像數組的影印機。它創建一個具有指定長度的新數組,從原始數組中複製元素。

int[] original = {1, 2, 3, 4, 5};
int[] copy = Arrays.copyOf(original, 7);
System.out.println(Arrays.toString(copy));
// 輸出:[1, 2, 3, 4, 5, 0, 0]

注意它是如何用零填充額外的空間的?這就像製作文件的副本並在最後添加空白頁一樣。

繼承的方法

Arrays 類作為 Object 的子類,從其父類繼承了一些方法。這些包括:

方法 描述
clone() 創建並返回此對象的副本
equals(Object obj) 指示某個其他對象是否「等於」此對象
finalize() 當垃圾回收器確定沒有更多對象引用時,對象被垃圾回收器調用
getClass() 返回此 Object 的運行時類
hashCode() 返回對象的哈希碼值
notify() 唤醒在此對象的監視器上等待的一個線程
notifyAll() 唤醒在此對象的監視器上等待的所有線程
toString() 返回對象的字符串表示形式
wait() 使當前線程等待,直到另一個線程調用此對象的 notify() 方法或 notifyAll() 方法

Arrays 類範例

讓我們把所有知識綜合起來,來個有趣的例子!想像我們正在組織一個小型圖書館。

import java.util.Arrays;

public class LibraryOrganizer {
public static void main(String[] args) {
// 我們的初始藏書
String[] books = {"The Hobbit", "1984", "Pride and Prejudice", "To Kill a Mockingbird", "The Great Gatsby"};

System.out.println("原始的書本順序:");
System.out.println(Arrays.toString(books));

// 讓我們按字母順序排我們的書
Arrays.sort(books);
System.out.println("\n排序後的書本:");
System.out.println(Arrays.toString(books));

// 讓我們找出 "1984" 現在在哪裡
int index = Arrays.binarySearch(books, "1984");
System.out.println("\n'1984' 現在在索引: " + index);

// 讓我們製作一個更大的書架
String[] biggerBookshelf = Arrays.copyOf(books, 7);
System.out.println("\n更大的書架:");
System.out.println(Arrays.toString(biggerBookshelf));

// 讓我們將空位填滿 "新書"
Arrays.fill(biggerBookshelf, 5, 7, "New Book");
System.out.println("\n填滿的書架:");
System.out.println(Arrays.toString(biggerBookshelf));
}
}

這個例子展示了我們如何使用 Arrays 類的各種方法來組織我們的小型圖書館。我們從一個混亂的收藏開始,進行排序,找到特定的書,製造更多的空間,甚至為新到的書添加佔位標題!

那你就有啦,各位!你剛剛踏入了 Java Arrays 類的世界。記住,熟練來自練習,所以不要害怕在你的項目中試驗這些方法。快樂編程!

Credits: Image by storyset