根据基础知识
- > int []是基元
的数组
- >和Integer []是对象数组
但是当我们将两者都转换为List时,我无法理解这种行为。请参考示例以了解问题
int [] a1={2,10,55,60};
/** To covert it into List
**/
List list = (Arrays.asList(a1));
System.out.println("size :"+list.size());
Iterator it =list.iterator();
while (it.hasNext()){
System.out.println(it.next());
}
上述代码的输出大小:1 [我@ f74f6ef(地址)
Integer [] a1={2,10,55,60};
/** To covert it into List
**/
List list = (Arrays.asList(a1));
System.out.println("size :"+list.size());
Iterator it =list.iterator();
while (it.hasNext()){
System.out.println(it.next());
}
上述代码的输出为大小:4
2
10
55
60
现在一个原因可能是a1(int)可能持有数组的所有元素,地址为连续元素的地址+4(int)。而a1(整数)将持有每个元素的地址。
因此可能是int的情况下 1且整数为4 的原因。
我不确定上述陈述。有人可以帮我理解一下情况吗?