首頁 >Java >java教程 >如何正確地將Java數組轉換為ArrayList?

如何正確地將Java數組轉換為ArrayList?

Patricia Arquette
Patricia Arquette原創
2024-12-14 05:01:15225瀏覽

How Do I Correctly Convert a Java Array to an ArrayList?

在Java 中將Array 轉換為ArrayList

在Java 中,將陣列轉換為ArrayList 的過程有時會令人困惑,尤其是在考慮Java SE 1.4.2 中引入的變更。本文深入探討了這種轉換的複雜性,提供了對可用選項的全面理解。

最初,Arrays.asList() 方法允許建立包含陣列元素的 ArrayList。然而,這種行為在 Java SE 1.5.0 中被修改,導致 ArrayList 包含陣列本身。

例如,考慮以下代碼片段:

Java SE 1.4 .2

int[] numbers = new int[] { 1, 2, 3 };
java.util.List<Integer> list = Arrays.asList(numbers);

Java SE 1.5.0

int[] numbers = new Integer[] { 1, 2, 3 };
java.util.List<Integer> list = Arrays.asList(numbers);

顯著的差異在於創建的ArrayList 的類型。在 1.4.2 中,list 是包含整數值 1、2 和 3 的 ArrayList。在 1.5.0 中,list 是包含陣列數字的 ArrayList。

這種區別可能會導致意外結果,例如:

Assert.assertTrue(list.indexOf(4) == -1);

雖然此斷言在1.4.2 中成立,但在1.5.0 中失敗,因為list現在包含數組數字,而不是Integer 值。

為了避免此類問題並獲取Integer 值的ArrayList,一種解決方案是使用包裝原始int 類型的Integer 類:

Integer[] numbers = new Integer[] { 1, 2, 3 };
java.util.List<Integer> list = Arrays.asList(numbers);

透過利用Integer 類,此轉換建立一個包含所需Integer 值的ArrayList。

以上是如何正確地將Java數組轉換為ArrayList?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn