ArrayList <int>与ArrayList <int []>?

ace*_*ace 5 java generics collections reference primitive-types

我无法找出原因的ArrayList < INT >是不是 不允许,但ArrayList的< INT [] >是允许的

我的印象是Collections中不允许使用原始数据类型,那么为什么要这样合法呢?

Gho*_*ica 6

泛型仅适用于引用类型(任何为Object的类型)。

原始int不是引用类型。

int[]是,因为任何数组也是对象。

处理多个int值的正确方法是 使用int[](而不是将它们放入列表中)或使用List<Integer>。真正选择哪一个取决于您的确切用例。


Kha*_*hah 5

一个array在Java是一个对象。在Java中,我们可以使用new运算符创建数组,并且我们知道每个对象都是使用new运算符创建的。因此,我们可以说这array也是一个对象。

收集仅适用于Objectint是原始数据类型,int[]是对象。

这是ArrayList<int>不允许但ArrayList<int[]>允许的原因。