gpt4 book ai didi

Java:我们可以将集合转换为数组列表吗?

转载 作者:行者123 更新时间:2023-12-02 05:10:04 25 4
gpt4 key购买 nike

我有一个hashmapgg 。我想使用keySet()取出它的 key 方法并将它们作为另一个方法的参数传递。

method_A( gg.keySet());

public void method_A(ArrayList<Integer> jj){
....
}

但是我收到了这个错误: error: incompatible types: Set<Integer> cannot be converted to ArrayList<Integer> .

然后我看到了这个:

method_A (new ArrayList<Integer>(gg.keySet()));

它实际上在做什么?对我来说,这看起来像是类型转换。我很困惑。有人可以向我解释一下发生了什么事吗?

最佳答案

new ArrayList<Integer>(gg.keySet())不是类型转换。它更像是一个复制构造函数(尽管实际的复制构造函数通常采用与正在实例化的相同类型的参数,但这里的情况并非如此)。

它正在创建一个新的 ArrayList<Integer>使用接受 Collection 的构造函数的实例作为一个论点。它添加了 Collection 中找到的所有元素。到新的ArrayList .

这是该构造函数的文档:

   /**
* Constructs a list containing the elements of the specified
* collection, in the order they are returned by the collection's
* iterator.
*
* @param c the collection whose elements are to be placed into this list
* @throws NullPointerException if the specified collection is null
*/
public ArrayList(Collection<? extends E> c)

关于Java:我们可以将集合转换为数组列表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27401941/

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