Aru*_*mar 3 java arrays collections list
使用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());
}
Run Code Online (Sandbox Code Playgroud)
b)但是,如果我从int数组类型更改为String数组(如String ar[] = new String[]{"abc","klm","xyz","pqr"};),那么我将列表大小设置为4,我认为是正确的.
PS:使用Integer(Wrapper Class)数组,结果很好,但我不知道为什么在原始int数组中,列表大小为1.请解释.
List由于java泛型而无法保存原始值(请参阅类似问题).因此,当您调用Arrays.asList(ar)Arrays创建一个只包含一个项目的列表时 - int数组ar.
编辑:
结果Arrays.asList(ar)将是a List<int[]>,NOT List<int>,它将保存一个项目,即ints 的数组:
[ [1,2,3,4,5] ]
Run Code Online (Sandbox Code Playgroud)
您无法int从列表本身访问基元.您必须像这样访问它:
list.get(0).get(0) // returns 1
list.get(0).get(1) // returns 2
...
Run Code Online (Sandbox Code Playgroud)
而且我认为这不是你想要的.