java 集合與陣列的互轉
阿新 • • 發佈:2019-01-09
在實際工作中,我們經常需要Collection型別與陣列的互相轉換,javaAPI也提供了相應的方法幫我們完成操作。
//集合轉為陣列
Collection.toArray(T[] a)//陣列轉為集合
Arrays.toList(T…a)
讓我們通過示例演示一下
@Test
public void testList2Array(){
//構建一個集合
List<String> list = new ArrayList<>();
list.add("123");
list.add("345");
list.add("456" );
//轉為陣列
String[] strings = list.toArray(new String[list.size()]);
//遍歷
Arrays.stream(strings).forEach(System.out::println);
}
輸出結果為:
123
345
456
再看一個數組轉集合的例子
@Test
public void array2List() {
String[]arr = new String[]{"123","345","456"};
List<String> list = Arrays.asList(arr);
System.out.println(list);
}
陣列轉集合使用的是Arrays.asList(T...a)
方法。這裡特別需要注意的是,使用這種方式轉來的list的型別是Arrays的一個內部類,擁有的方法數量有限,不具備add 、remove
等的常用操作。(雖然這個內部類也叫ArrayList)
如下操作:
@Test
public void array2List() {
String[]arr = new String[]{"123","345","456"};
List<String> list = Arrays.asList(arr);
list.add("567" ); //會報UnsupportedOperationException異常
System.out.println(list);
}
若要經轉化後有增加刪除等操作,可轉為ArrayList或其他擁有完整操作的list類
@Test
public void array2List() {
String[]arr = new String[]{"123","345","456"};
//轉為ArrayList
List<String> list = new ArrayList<>(Arrays.asList(arr));
list.add("567");
System.out.println(list);
}