gpt4 book ai didi

java - Integer 和 int 数组的 containsAll 行为差异 (Java)

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:12:15 24 4
gpt4 key购买 nike

有人能解释一下为什么会这样吗:

Integer[] arr1 = {1,2,3,4,5};
Collection<?> numbers = Arrays.asList(new Integer[]{1,2,3});
System.out.println(Arrays.asList(arr1).containsAll(numbers));

打印“true”,而如果我们像这样将 Integer 换成 int:

int[] arr2 = {1,2,3,4,5};
Collection<?> numbers2 = Arrays.asList(new int[]{1,2,3});
System.out.println(Arrays.asList(arr2).containsAll(numbers2));

打印出“false”?

最佳答案

在第二种情况下,每个列表都由一个元素组成。这两个元素都是 int[] 数组。包含较大数组的列表不包含包含较小数组的列表的成员。

Arrays.asList() 方法接受类型为 T 的可变参数列表,并返回 List<T>。 .对于 Integers 数组,T 可以是 Integer,返回类型是 List。但是对于原始数组,T 不能是 int,因为不可能有 List<int>。 .

关于java - Integer 和 int 数组的 containsAll 行为差异 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16368944/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com