我正在尝试将meterId映射到具有该ID的MeterBlink列表。我主要在如何为HashMap.put()调用建立列表上感到困惑。代码如下:
Map<String, List<MeterBlink>> IdToMetersMap = new HashMap<>();
for (MeterBlink meterBlink : createData()) {
List<MeterBlink> meterBlinkList = new ArrayList<>();
meterBlinkList.add(meterBlink);
String meterId = meterBlink.getMeterId();
idToMetersMap.put(meterId, meterBlinkList)
}
我认为问题在于,每次迭代时我都会创建一个新列表,但不确定如何解决此问题。
最佳答案
我喜欢java8的答案,但是这里没有java8(没有lambda表达式):
Map<String, List<MeterBlink>> idToMetersMap = new HashMap<>();
for (MeterBlink meterBlink : createData()) {
String meterId = meterBlink.getMeterId();
List<MeterBlink> meterBlinkList = idToMetersMap.get(meterId);
//if List doesn't exist create it and put in Map
if (meterBlinkList == null) {
meterBlinkList = new ArrayList<>();
idToMetersMap.put(meterId, meterBlinksList)
}
meterBlinkList.add(meterBlink);
}
关于java - 通过将元素映射到元素集合来替换多图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31747409/