Arrays.asList()的使用

Arrays.asList()的使用

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
public class ArraysToListTest {
public static void main(String[] args) {
int[] nums = {1,2,3,4,5};
printArrays(nums);
List<int[]> ints = Arrays.asList(nums);
printArrays(ints);


Integer[] integers = {1,2,3,4,5};
printArrays(integers);
List<Integer> integerList = Arrays.asList(integers);
printArrays(integerList);
}

public static void printArrays(List list){
list.forEach(o -> {
if (o instanceof int[]) {
printArrays((int[]) o);
}else {
System.out.println(o);
}
});
System.out.println();
}

public static void printArrays(Integer[] nums){
for (int i = 0; i < nums.length; i++) {
int num = nums[i];
System.out.print(num+" ");
}
System.out.println();
}
public static void printArrays(int[] nums){
for (int i = 0; i < nums.length; i++) {
int num = nums[i];
System.out.print(num+" ");
}
System.out.println();
}
}

总结:

当使用Arrays.asList(nums);转换的数组内容为基本数据类型时,转换后的list集合的存放的也是这个基本数据类型的数组,而不是这个基本数据类型的值。

如果要对转换后的list进行增删改操作,则需要以new的方式来创建list

解决方法:

使用其包装类型:

1
2
3
Integer[] integers = {1,2,3,4,5};
List<Integer> integerList = new ArrayList<>(Arrays.asList(integers));