why List.contain is returning false
请参见下面的代码。
1 2 3
| int[] intArray ={1, 2, 3, 4, 3, 4, 5};
List intList =Arrays. asList(intArray );
System. out. println(intList. contains(1)); |
上面的代码返回错误。有人能解释为什么是这样吗?
- 您不应该使用像List这样的原始类型。如果您编写了List,您会注意到代码将不再编译。因为带有基元整数数组的Arrays.asList只返回带有单个元素的列表,所以数组;而不是由数组的所有元素组成的列表。
- 为什么是-2?对于来自C++的人来说,这一点都不明显。问题文本包含了答案所必需的全部内容。
- "Bathsheba,谢谢先生,看到了2,我想我问了一个错误的问题,我是Java新手。
Arrays.asList将原始数组转换为单个元素为数组的List,intList.contains(intArray)将返回true,但intList.contains(1)不会。
如果将int[]数组更改为Integer[],您将得到预期的输出,即包含原始数组元素的List。