2013-03-28 64 views
2

当我使用泛型保存Java中的原始数组时,实际上存储在数组中的实现了一个Collection?使用泛型来定义集合意味着我只能存储一个对象,如果我要这么做ArrayList<Integer>我可以添加一个int,但是这是自动复制到IntegerJava集合中的原始数组

如果我要定义ArrayList<int[]>它完全合法,因为数组是对象。我不确定如果实际上最终存储在集合中的结果是Integer[],因为编译器执行了一些转换并将使用自动装箱添加到该阵列,或者如果我可以存储int[],并且该集合将存储基元数组作为阵列本身就是一个对象。

回答

1

ArrayList<int[]>将存储基元数组。不会涉及自动装箱。

在Java中,任何类型的数组 - 无论是否为 - 是一个对象,因此与泛型兼容。

与的int[]容器无意中最终甚至可以,如从昨天所示通过这个有趣的问题:Java containsAll does not return true when given lists