【发布时间】:2018-10-19 14:14:15
【问题描述】:
我构建了一个 idMap 如下:
class Item {
private int id;
private int skuId;
//some getter and setter
}
Map<Integer, List<Integer>> buildIdMap(List<Item> items) {
Map<Integer, List<Integer> idMap = Maps.newHashMap();
for (Item item : items) {
if (!idMap.contains(item.getId())) {
idMap.put(item.getId(), List.newArrayList());
}
idMap.put(item.getId(), item.getSkuId());
}
return idMap;
}
如何使用 guava 或 java8 来做同样的事情?
【问题讨论】:
-
Map<Integer, List<Integer>您有多个这样的语法错误(没有>),并且缺少多个分号。你的方法也没有返回任何东西。 -
什么是
item.getSkuId()?这段代码也没有什么意义,请考虑一下:如果您的地图不包含id- 您通过idMap.put(item.getId(), List.newArrayList())将其放入,仅在通过idMap.put(item.getId(), item.getSkuId())覆盖该值之后 - 如代码所示,我是投票关闭它不清楚,一旦你更新它并更有意义,我将撤回投票