使用 java.util.Arrays.asList
,为什么它显示 int
(原始类型)和 String
数组的列表大小不同?
a) 使用 int
数组,每当我执行以下程序时,List size = 1
public static void main(String[] args) {
int ar[]=new int[]{1,2,3,4,5};
List list=Arrays.asList(ar);
System.out.println(list.size());
}
b) 但是如果我从 int
数组类型更改为 String
数组(比如 String ar[] = new String[]{"abc","klm","xyz","pqr"};
) ,然后我得到的列表大小为 4,我认为这是正确的。
PS : 使用 Integer
(Wrapper Class) 数组,结果很好,但我不确定为什么在原始 int
数组中,列表大小为 1。请解释。
最佳答案
List
由于 Java 泛型(参见 similar question),无法保存原始值。所以当你调用Arrays.asList(ar)
Arrays 创建一个只包含一项的列表 - int 数组 ar
.
编辑:
Arrays.asList(ar)
的结果将是 List<int[]>
, 不 List<int>
它将包含一项,即 int
的数组小号:
[ [1,2,3,4,5] ]
您无法访问原语 int
s 来自列表本身。您必须像这样访问它:
list.get(0).get(0) // returns 1
list.get(0).get(1) // returns 2
...
而且我认为这不是您想要的。
关于java - 将 Arrays.asList 与 int 数组一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25483854/