我测试了下面的代码。我期望编译错误,因为我命令编译器复制“ Set ”。详细地,“ Hashmap.keySet()”返回“ Set ”而不是“ List ”。我以前基于该结构知道“ Set ”与“ List ”不兼容。您能告诉我这段代码是如何工作的吗? List<String> h = new ArrayList<String>(HashMap<>.keySet()); (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 HashMap<>.keySet()返回Set。 Set是Collection。 ArrayList具有一个接受Collection的构造函数,并将Collection的所有元素添加到List。因此,您可以将HashMap<>.keySet()传递给该构造函数。 java.util.ArrayList.ArrayList(Collection c) 构造一个包含指定集合元素的列表,其顺序由集合的迭代器返回。 (adsbygoogle = window.adsbygoogle || []).push({}); 09-26 13:33