0
請參閱下面的代碼。爲什麼List.contain返回false
int[] intArray={1,2,3,4,3,4,5};
List intList=Arrays.asList(intArray);
System.out.println(intList.contains(1));
上面的代碼是返回false.can任何一個請解釋爲什麼它是這樣的?
請參閱下面的代碼。爲什麼List.contain返回false
int[] intArray={1,2,3,4,3,4,5};
List intList=Arrays.asList(intArray);
System.out.println(intList.contains(1));
上面的代碼是返回false.can任何一個請解釋爲什麼它是這樣的?
Arrays.asList
您的基本數組轉換爲List<int[]>
,其單個元素是數組,intList.contains(intArray)
將返回true
,但intList.contains(1)
不會。
如果您將int[]
數組更改爲Integer[]
,您將獲得預期的輸出 - 即包含原始數組元素的List<Integer>
。
感謝您的解釋 – RSingh
你不應該使用'List'這樣的原始類型。如果你寫了'List',你會注意到代碼不再編譯。因爲具有原始整數數組的'Arrays.asList'只會返回帶有單個元素的List,不是由數組的所有元素組成的列表。 –
Tunaki
爲什麼是-2?對於來自C++的人來說,這並不明顯。問題文本包含答案所需的全部內容。 – Bathsheba
@Bathsheba謝謝先生,看到-2後我以爲我問了一個錯誤的問題,我是java的新手。 – RSingh