将映射值添加到ArrayList

问题描述 投票:0回答:2

我在理解最后一行代码如何有效时遇到麻烦。

class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
    if (strs.length == 0) return new ArrayList();
    Map<String, List> ans = new HashMap<String, List>();
    for (String s : strs) {
        char[] ca = s.toCharArray();
        Arrays.sort(ca);
        String key = String.valueOf(ca);
        if (!ans.containsKey(key)) ans.put(key, new ArrayList());
        ans.get(key).add(s);
    }
    return new ArrayList(ans.values());
}

}

代码行:“ return new ArrayList(ans.values());”值是一一插入吗?到底发生了什么?

java arraylist syntax hashmap
2个回答
3
投票
ans.values()返回Collection<List<String>>,而您需要返回List<List<String>>。 ArrayList类具有以Collection为参数的构造函数,请参见docs

0
投票
根据java doc,ArrayList类具有构造函数,该构造函数可以构造指定集合中的元素列表。 HasMap也是接口集合的实现。
© www.soinside.com 2019 - 2024. All rights reserved.