如何将List转换为HashMap

3
如何将此内容转换为:
Map<String, Integer> itemsBought

这样我就可以将它添加到ArrayList中,如下所示:
public void add(String prd, int qty){
        orderList.add(new Order(prd, qty));
}

除了这个解决方案,还有其他的解决方案吗:

hashMap.keySet().toArray(); 
hashMap.values().toArray(); 

Thank you in advance.

2个回答

11
for (Entry<String, Integer> entry : itemsBought.entrySet()) {
    orderList.add(new Order(entry.getKey(), entry.getValue()));
}

1
for (String product : itemsBought.keySet()) {
    int quantity = itemsBought.get(product);
    orderList.add(new Order(product, quantity));
}

我更喜欢更易读的代码(但不要太过程)


1
无论实现方式如何,Tarlog的答案清楚地表明您必须迭代集合以填充ArrayList。话虽如此,我并没有看到这个答案有任何价值。 - mre
1
这个解决方案对于每个键执行了一次映射查找(最坏情况可能是O(n),取决于实现,看起来像O(2n))。第一个解决方案,再次取决于实现,可能只需在O(n)总时间内循环遍历所有条目。对于微不足道的映射大小,这完全无关紧要。 - Jochen Bedersdorfer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接