9

私は次のJavaコードを持っています、

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

ただし、出力は false です。なぜこれが True を与えないのですか?

4

2 に答える 2

13

得られるのは整数のリストではなく、整数配列のリストです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));
于 2012-04-27T16:14:13.557 に答える
1

静的メソッド 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));
于 2012-04-27T16:22:49.953 に答える