Java集合中的原始数组

3
当我使用泛型实现一个包含原始数组的集合时,Java中实际存储了什么?使用泛型定义集合意味着我只能存储一个对象,如果我做ArrayList<Integer>,我可以添加一个int,但这会自动装箱成Integer
如果我定义了ArrayList<int[]>,这是完全合法的,因为数组是对象。然而,我不确定我最终在集合中存储的是Integer[],因为编译器执行一些转换并将自动装箱添加到数组中,或者我可以存储int[],并且集合将原始数组本身存储为对象。
2个回答

2
< p > ArrayList<int[]> 将会存储原始数组。其中不会有自动装箱的过程。

在Java中,任何类型的数组 -- 无论是原始类型还是其他类型 -- 都是一个对象,并且与泛型兼容。

甚至有可能无意中得到一个 int[] 的容器,正如昨天这个有趣的问题所示: Java containsAll does not return true when given lists


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接