-
ArrayList轉Array
(1):使用ArrayList的toArray方法。
1)當ArrayList中存放的是引用類型時(例如String),成功
/**
* 使用了ArrayList的toArray方法 ,ArrayList里存放的是String(引用類型)
*/
@Test
public void list2Array1() {
ArrayList<String> arrayList = new ArrayList<String>();
arrayList.add("1");
arrayList.add("2");
arrayList.add("3");
Object[] array = arrayList.toArray(new String[3]);
for (Object o : array) {
System.out.println(o);
}
}
輸出為:
[1, 2, 3]
2) 當ArrayList中存放的是基本數據類型時(例如int),成功
/**
* 使用了ArrayList的toArray方法 , ArrayList里存放的是int(基本數據類型)
*/
@Test
public void list2Array2() {
ArrayList<Integer> arrayList = new ArrayList<Integer>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
Object[] array = arrayList.toArray();
System.out.println(Arrays.toString(array));
}
輸出為:
[1, 2, 3]
-
Array轉ArrayList
(1):使用Arrays的asList方法。
1)當Array中存放的是引用類型時(例如String),成功
/**
* 使用Arrays的asList方法,Array中存放的String(引用類型)
*/
@Test
public void array2List1() {
String[] stringArray = new String[] { "1", "2", "3" };
List<String> list = Arrays.asList(stringArray);
System.out.println(list);
}
輸出為:
[1, 2, 3]
2) 當Array中存放的是基本數據類型時(例如int),不成功
/**
* 使用Arrays的asList方法,Array中存放int(基本類型)
*/
@Test
public void array2List2() {
int[] intArray = new int[] { 1, 2, 3 };
List<int[]> intList = Arrays.asList(intArray);
System.out.println(intList.size());
for (int[] is : intList) {
System.out.println(Arrays.toString(is));
}
}
輸出為:
[[I@14514713]
List的長度為 : 1
[1, 2, 3]
這個問題解決的方法就是將int[]換成Integer[],這樣內容就成了對象數組(即引用類型)。
/**
* 使用Arrays的asList方法,Array中存放int(基本類型)
*/
@Test
public void array2List3() {
Integer[] integerArray = { 1, 2, 3 };
List<Integer> intList = Arrays.asList(integerArray);
System.out.println(intList);
System.out.println("List的長度為 : " + intList.size());
for (Integer is : intList) {
System.out.println(is);
}
}
輸出為:
[1, 2, 3]
List的長度為 : 3
1
2
3
參考文獻: