java - Arrays.asList(int[]) 不工作

标签 java arrays list

当我运行以下代码时,没有输出任何输出。

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)返回假。 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> .

关于java - Arrays.asList(int[]) 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31422025/

相关文章:

java - sql 语法错误,但串联文本在 Datagrip 中运行正常

java - 在 Java 中,为什么 ((A)b).disp() 调用派生类方法 disp() 而不是基类方法 disp() ?

javascript - 如何将元素索引与数组索引匹配?

python - 如何删除列表中的随机项目以保持列表的一定长度?

python - 使用列表扩展 Pandas 列

java - 创建binder时,Spring Cloud config + 总线对配置服务器调用两次

java - Jing Relaxng 字符串长度验证

Java 比较数组和ArrayList

java - 有没有像数组一样工作的列表?

python - 如何根据子列表的长度对列表列表进行排序