public static void main(String[] args) {
/*--- 基本数据类型数组 ---*/
int[] test = new int[]{1,2,3,4};
// 手动转列表
List ints = Arrays.asList(test);
// 结果:1
System.out.println(ints.size());
// IDE快捷转列表,泛型类型为 int[]
List<int[]> ints2 = Arrays.asList(test);
int i = 1;
/*
* 结果:
* [I@52af6cff
* 1
* */
for (int[] anInt : ints2) {
System.out.println(anInt.toString());
System.out.println(i++);
}
/*--- 引用数据类型数组 ---*/
Integer[] integers = new Integer[]{1,2,3,4};
List<Integer> integerList = Arrays.asList(integers);
// 结果:4
System.out.println(integerList.size());
}
基本数据类型数组转列表时,如果直接传递数组,将被视为一个对象,而不会被解析成数组,所以输出结果size为1。 通过IDE快捷生成的列表可以很明显的看到,列表数据类型为 int[],而不是 int。
改引用数据类型即可
网络看到的面试题,答错了特意记录一下