私は次のJavaコードを持っています、
int a[] = new int[] {20, 30} ;
List lis = Arrays.asList(a) ;
System.out.print(lis.contains(20));
ただし、出力は false です。なぜこれが True を与えないのですか?
私は次のJavaコードを持っています、
int a[] = new int[] {20, 30} ;
List lis = Arrays.asList(a) ;
System.out.print(lis.contains(20));
ただし、出力は false です。なぜこれが True を与えないのですか?
得られるのは整数のリストではなく、整数配列のリストですList<int[]>
。List
プリミティブ型のコレクション ( など) を作成することはできません。
あなたの場合、値が 20lis.contains(20)
のオブジェクトを作成しInteger
、それを int 配列と比較しますが、これは明らかに等しくありません。
配列のタイプを次のように変更してみてくださいInteger
。
Integer a[] = new Integer[] {20, 30} ;
List lis = Arrays.asList(a) ;
System.out.print(lis.contains(20));
静的メソッド asList は、パラメーター varargs: として使用します...
。a が Object である a<Integer>
を防ぐように要求することによってのみ。List<Object>
int[] a = new int[] {20, 30} ;
List<Integer> lis = Arrays.asList(a) ;
System.out.print(lis.contains(20));