This question already has answers here:
Arrays.asList() not working as it should?
(11 个回答)
6年前关闭。
我在下面的代码片段中采用了两个数组,
我的输出是
真的
错误的
我知道当我们使用 Arrays.asList 时,我们会得到一个指向现有数组的包装对象以进行随机访问,但实际上并没有创建列表接口(interface)的对象。
我的问题是当 contains 方法适用于字符串时,为什么它不适用于 int。
(11 个回答)
6年前关闭。
我在下面的代码片段中采用了两个数组,
String[] things = {"a", "b", "c", "d", "e", "f"};
int[] a1 ={1,2,3,4,5};
System.out.println(Arrays.asList(things).contains("c"));
System.out.println(Arrays.asList(a1).contains(3));
我的输出是
真的
错误的
我知道当我们使用 Arrays.asList 时,我们会得到一个指向现有数组的包装对象以进行随机访问,但实际上并没有创建列表接口(interface)的对象。
我的问题是当 contains 方法适用于字符串时,为什么它不适用于 int。
最佳答案
Arrays.asList
用于 int 数组(或类似地用于任何原始数组)生成一个 List<int[]>
,其单个元素是该 int 数组。这就是为什么 contains(3)
返回 false ( System.out.println(Arrays.asList(a1).contains(a1));
将返回 true)。
如果您为 Arrays.asList
数组调用 Integer
,您将获得 List<Integer>
contains
将按预期工作。
10-08 01:28