//list转为数组
public
class
Main {
public
static
void
main(String[] args) {
//
1.一维字符串list转为数组
List<String> list1=
new
ArrayList<>
();
list1.add(
"hello"
);
list1.add(
"world"
);
list1.add(
"!"
);
String[] strings
=
new
String[3
];
strings
=list1.toArray(
new
String[0]);
//
传入参数,表示强转
//2.一维数字list转为数组
List<Integer> list2=
new
ArrayList<>
();
list2.add(
1
);
list2.add(
2
);
list2.add(
3
);
int
[] arr=
new
int
[3
];
//
下一行代码是仿照String类型写的。但是报错'toArray(T[])' in 'java.util.List' cannot be applied to '(int[])'
//
原因:
toArray()方法应该传入的参数T是泛型,但是泛型必须是引用类型,不能是基本类型(比如int)
//
arr=list.toArray(new int[0]);
//解决方法1:采用流式处理Stream进行处理
arr=
list2.stream().mapToInt(Integer::valueOf).toArray();
//解决方法2:声明一个Integer类型的数组
Integer[] arr2=
new
Integer[3
];
arr2
=list2.toArray(
new
Integer[0
]);
for
(
int
num:arr)
System.out.println(num);
//
1 2 3
for
(
int
num:arr2)
System.out.println(num);
//
1 2 3
//
3.二维数字list转为数组
List<
int
[]> list3=
new
ArrayList<>
();
list3.add(
new
int
[]{0,111
});
list3.add(
new
int
[]{1,222
});
//
这里的泛型T为:int[],是引用类型,所以不会报错
int
[][] arr2D=list3.toArray(
new
int
[0][0
]);
for
(
int
[] n:arr2D)
System.out.println(n[
0]+" " +n[1]);
//
0 111 1 222