Java提供了很多種將數組轉換為List的方法,本文將對這些方法進行詳細的闡述。
一、Arrays.asList()
Arrays.asList()
是將數組轉換為List比較常見的方法。該方法返回一個受指定數組支持的固定大小的列表。這個方法的一個很大的特點是它不創建新的List對象,而是使用底層數組作為List,因此不能使用add()
和remove()
等方法修改List,否則會拋出UnsupportedOperationException
異常。
Integer[] arr = {1, 2, 3, 4, 5};
List<Integer> list = Arrays.asList(arr);
System.out.println(list);
通過Arrays.asList()
方法將數組轉換為List:
[1, 2, 3, 4, 5]
如果我們嘗試使用add()
方法向List中添加元素,會拋出異常:
list.add(6);
拋出異常:
Exception in thread "main" java.lang.UnsupportedOperationException
這也是Arrays.asList()
方法缺點之一,如果我們需要使用List的add()
和remove()
方法,可以將其返回值重新創建一個List,示例代碼如下:
List<Integer> list2 = new ArrayList<>(Arrays.asList(arr));
list2.add(6);
System.out.println(list2);
上面的代碼將Arrays.asList()
方法返回的List重新封裝成一個ArrayList對象,就可以使用add()
和remove()
方法了,輸出結果如下:
[1, 2, 3, 4, 5, 6]
二、Collections.addAll()
Collections.addAll()
方法可以將一個數組轉換為一個List,該方法的優點是可以使用List的add()
和remove()
方法。
Integer[] arr = {1, 2, 3, 4, 5};
List<Integer> list = new ArrayList<>();
Collections.addAll(list, arr);
System.out.println(list);
輸出結果如下:
[1, 2, 3, 4, 5]
使用add()
方法向List中添加元素:
list.add(6);
System.out.println(list);
輸出結果如下:
[1, 2, 3, 4, 5, 6]
三、Stream.of()
Java 8引入了Stream的概念,可以通過Stream.of()
方法快速將數組轉換為List,代碼如下:
Integer[] arr = {1, 2, 3, 4, 5};
List<Integer> list = Stream.of(arr).collect(Collectors.toList());
System.out.println(list);
輸出結果如下:
[1, 2, 3, 4, 5]
同樣的,我們可以使用add()
方法向List添加元素:
list.add(6);
System.out.println(list);
輸出結果如下:
[1, 2, 3, 4, 5, 6]
四、Guava庫
Google Guava庫提供了一個類似Collections.addAll()
的方法com.google.common.collect.Lists.newArrayList()
,可以快速將一個數組轉換為List。
引入Guava庫:
import com.google.common.collect.Lists;
使用Lists.newArrayList()
方法將數組轉換為List:
Integer[] arr = {1, 2, 3, 4, 5};
List<Integer> list = Lists.newArrayList(arr);
System.out.println(list);
輸出結果如下:
[1, 2, 3, 4, 5]
使用add()
方法向List添加元素:
list.add(6);
System.out.println(list);
輸出結果如下:
[1, 2, 3, 4, 5, 6]
五、總結
以上就是Java將數組轉換為List的幾種方法,選擇哪種方法取決於具體的使用場景和需要修改List的能力。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/236499.html