用于列出问题的Java数组

时间:2012-04-27 16:12:05

标签: java

我有以下Java代码,

int a[] = new int[] {20, 30} ;
List lis = Arrays.asList(a) ;
System.out.print(lis.contains(20));

但是,输出是错误的。任何人都可以帮助我,为什么这不是真的?

2 个答案:

答案 0 :(得分:13)

你得到的不是整数列表,而是整数数组的列表,即List<int[]>。您无法创建基本类型的集合(如List)。

在您的情况下,lis.contains(20)将创建一个值为20的Integer对象,并将其与int数组进行比较,这显然不相等。

尝试将数组的类型更改为Integer,它应该有效:

Integer a[] = new Integer[] {20, 30} ;
List lis = Arrays.asList(a) ;
System.out.print(lis.contains(20));

答案 1 :(得分:1)

静态方法asList用作参数varargs:...。只有通过要求<Integer>,才能阻止其中a为对象的List<Object>

int[] a = new int[] {20, 30} ;
List<Integer> lis = Arrays.asList(a) ;
System.out.print(lis.contains(20));