私は次の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));