我有以下的Java代碼,的Java數組列表發行
int a[] = new int[] {20, 30} ;
List lis = Arrays.asList(a) ;
System.out.print(lis.contains(20));
但是,輸出是假的。任何人都可以幫助我,爲什麼這不是真的?
我有以下的Java代碼,的Java數組列表發行
int a[] = new int[] {20, 30} ;
List lis = Arrays.asList(a) ;
System.out.print(lis.contains(20));
但是,輸出是假的。任何人都可以幫助我,爲什麼這不是真的?
你得到的不是整數列表,而是一列整數數組,即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));
靜態方法asList使用作爲參數可變參數:...
。只有通過要求<Integer>
,您才能阻止其中a是對象的List<Object>
。
int[] a = new int[] {20, 30} ;
List<Integer> lis = Arrays.asList(a) ;
System.out.print(lis.contains(20));
該死的我打字慢! (+1) – 2012-04-27 16:14:37
可變損耗的陷阱... – Luciano 2012-04-27 16:15:13
非常感謝。有沒有其他方法可以解決這個問題?這樣就可以使用包含和刪除方法來轉換數組了嗎? – Arpssss 2012-04-27 16:16:16