This question already has answers here:
Convert Java Array to Iterable
(10个答案)
Arrays.asList() not working as it should?
(10个答案)
4年前关闭。
当我运行以下代码时,没有输出输出。
进一步说明:
(10个答案)
Arrays.asList() not working as it should?
(10个答案)
4年前关闭。
当我运行以下代码时,没有输出输出。
int[] array = {3, 2, 5, 4};
if (Arrays.asList(array).contains(3))
{
System.out.println("The array contains 3");
}
最佳答案
当您将基元数组(在您的情况下为int[]
)传递给Arrays.asList
时,它将创建带有单个元素的List<int[]>
-数组本身。因此,contains(3)
返回false。 contains(array)
将返回true。
如果您将使用Integer[]
而不是int[]
,它将起作用。
Integer[] array = {3, 2, 5, 4};
if (Arrays.asList(array).contains(3))
{
System.out.println("The array contains 3");
}
进一步说明:
asList
的签名是List<T> asList(T...)
。基元不能替换泛型类型参数。因此,当您将此方法传递给int[]
时,整个int[]
数组将替换T
,您将获得List<int[]>
。另一方面,当您将Integer[]
传递给该方法时,Integer
会替换T
,您会得到List<Integer>
。10-08 15:58