CodeGym /Java Blog /Toto sisi /Java 中 Array 到 ArrayList 的轉換
John Squirrels
等級 41
San Francisco

Java 中 Array 到 ArrayList 的轉換

在 Toto sisi 群組發布
你好!在今天的課程中,我們將討論如何在 Java 中初始化數組以及如何將數組轉換為 Arraylist。數組是 Java 中 Container 類的擴展,當數據量明確時,可以用作臨時保存一組原始數據類型的方法。但是數組在創建時是靜態的,這意味著當您創建一個數組時,您不能更改它包含的項目數。你應該記得如何在 java 中初始化一個數組;它看起來像這樣:

datatype[] isArray;
其中數據類型是任何原始數據類型,如 int、float、long 甚至 String。您也可以像這樣在聲明之後放置方括號:

datatype isArray[];
那麼我們如何將這個具有一定數量元素的靜態數組轉換為 ArrayList 呢?那麼,首先,讓我們看看什麼是 ArrayList。

數組列表

ArrayList 的名稱可能與 Array 相似,但處理方式完全不同。那是因為 ArrayList 沒有擴展 Container 類,它擴展了 List 類。這意味著一切都會得到不同的處理。一方面,因為它是一個列表,所以您可以以不同的方式對其進行操作。您可以使用add(element)增加或減少 ArrayList 的大小,這會將元素放在 List 的末尾,並在必要時將大小增加一。或者你可以使用trimToSize()它刪除末尾的所有空索引並將 ArrayList 修剪為其當前大小。因此您可以看到使用 ArrayList 而不是僅使用數組有一些優勢。接下來,我們將向您展示從 Array 轉換為 ArrayList 的兩種方法,以及如何在需要時返回。

在 Java 中從 Array 移動到 ArrayList 和 ArrayList 到 Array

因此,假設您編寫了一個程序來記錄您的公司手頭有多少螺母和螺栓用於修理貓樹。多年來,您只需要 30 種不同類型的數據,因此只需使用數組進行跟踪就很容易了。但是現在您有一個新客戶,他要求您另外進貨 5 種類型。您如何更改您的程序並保留所有數據,並防止您在接聽另一個客戶時再次這樣做?這是正確的!一個數組列表!那麼如何將 Java Array 轉換為 ArrayList 呢?共有三種方法。使用.asList()方法 Java 數組有一個很棒的工具,您可以在查看名為.asList()的 API 時看到它。所以你可以這樣寫:

boltInventory.asList(bolts);
此方法的問題在於它不會創建真正的 ArrayList。它所做的是創建一個大小固定且不可更改的列表。所以你仍然不能以動態的方式改變大小。嘗試添加或刪除元素將導致異常。因此,雖然這確實有其用途,但它並不是真正的轉換。但是我們可以使用它。使用.asList()作為參數 這是在 Java 中將數組轉換為列表的第二種方法。因為.asList()方法創建了一個 List,我們可以使用它來傳遞對實際 ArrayList 的引用。下面是初始化 ArrayList 的方法:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>();
這將創建一個包含十個空單元格的 ArrayList。但是,末尾的()可以用來傳遞一個參數來填充 ArrayList。所以結合.asList方法,你有:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>(Arrays.asList(bolts));
這會將.asList()方法 創建的 List 傳遞給 ArrayList,因此現在您可以根據需要動態地操作它。使用Collections.addAll()方法 在 Java 中將 Array 轉換為 ArrayList 的另一種方法是使用此方法。它將 Array 的內容傳遞給 ArrayList。此方法的通用語法是:

Collections.addAll(c, T);
其中c是目的地,T是傳遞的內容。因此,對於我們的示例,語法如下所示:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>():
Collections.addAll(boltsInventory, bolts);
這會將 Array bolts 的全部內容傳遞給新的 ArrayList。將 ArrayList 轉換為數組 有時您可能需要將 ArrayList 轉換為 Java 中的數組。如果這樣做,ArrayList 有一個方法.toArray(a),其中 a 是目的地。因此,對於我們的示例,語法為:

Integer boltsInventoryArray[] = new Integer{boltsInventory.size()];
// this ensures the newly created array is of the same size as the ArrayList
boltsInventoryArray = boltsInventory.toArray(boltsInventoryArray);
當您像這樣在 Java 中將列表更改為數組時,您正在創建一個深拷貝。也就是說,所有對 Array 的引用都不同於對 ArrayList 的引用。所以你可以在不改變存儲在ArrayList中的數據的情況下操作Array中的數據。當你需要測試數據時,將 java 列表轉換為數組很有用。

結論

數組對於快速訪問和快速操作較小的數據集非常有用,但無法更改其大小意味著它們很快就會失去長期使用的效率。ArrayList 為您提供了靈活性以及根據需要插入和刪除節點的能力。學習如何將 Java Array 轉換為 List 將提高程序的整體效率並改善它們的運行時間。
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION