转换为List时int []和Integer []数组之间的区别

时间:2015-06-13 15:38:26

标签: java arrays list wrapper

根据基础知识
- > int []是基元
的数组 - >和Integer []是对象数组

但是当我们将两者都转换为List时,我无法理解这种行为。请参考示例以了解问题

scenerio 1:

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(地址)

scenerio 2:

     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 的原因。 我不确定上述陈述。有人可以帮我理解一下情况吗?

0 个答案:

没有答案