我有以下Java代码,
int a[] = new int[] {20, 30} ;
List lis = Arrays.asList(a) ;
System.out.print(lis.contains(20));
但是,输出是错误的。任何人都可以帮助我,为什么这不给 True ?
我有以下Java代码,
int a[] = new int[] {20, 30} ;
List lis = Arrays.asList(a) ;
System.out.print(lis.contains(20));
但是,输出是错误的。任何人都可以帮助我,为什么这不给 True ?
你得到的不是整数列表,而是整数数组列表,即List<int[]>. 您不能创建List原始类型的集合(如 )。
在您的情况下,lis.contains(20)将创建一个Integer值为 20 的对象并将其与 int 数组进行比较,这显然不相等。
尝试将数组的类型更改为Integer,它应该可以工作:
Integer a[] = new Integer[] {20, 30} ;
List lis = Arrays.asList(a) ;
System.out.print(lis.contains(20));
静态方法 asList 用作参数 varargs: ...。仅通过要求<Integer>您防止List<Object>where a is an Object。
int[] a = new int[] {20, 30} ;
List<Integer> lis = Arrays.asList(a) ;
System.out.print(lis.contains(20));