gpt4 book ai didi

java - 用将元素映射到元素集合来替换多重映射

转载 作者:行者123 更新时间:2023-12-02 05:00:37 25 4
gpt4 key购买 nike

我正在尝试将meterId映射到具有该Id的MeterBlinks列表。我主要对如何为 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)
}

我认为问题是我每次迭代时都会创建一个新列表,但我不确定如何解决这个问题。

最佳答案

使用computeIfAbsent jre 8中添加的方法:

Map<String, List<MeterBlink>> idToMetersMap = new HashMap<>();
for (MeterBlink meterBlink : createData()) {
String meterId = meterBlink.getMeterId();
idToMetersMap.computeIfAbsent(meterId, k -> new ArrayList<>()).add(meterBlinks);
}

java 8 中的另一个选项:

Map<String, List<MeterBlink>> idToMetersMap = createData().stream()
.collect(Collectors.groupingBy(MeterBlink::getMeterId));

关于java - 用将元素映射到元素集合来替换多重映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31747409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com