gpt4 book ai didi

java - 如何使用 Java Streams 为 HashMap 的多个键插入相同的值

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:00:03 27 4
gpt4 key购买 nike

假设我有一个 HashMap 并且我想将相同的值插入到键列表中。如何在不遍历所有键并插入值的情况下使用 Java 8 执行此操作?这更像是一个 Java Streams 问题。

这是最直接的方法。这是我编写的示例代码,用于演示我想要实现的目标。

public void foo(List<String> keys, Integer value) {
Map<String, Integer> myMap = new HashMap<>();
for (String key : keys) {
myMap.put(key, value);
}
}

是否有使用 Java 8 流执行上述操作的更简单方法?如何避免使用 Java 8 流的 for 循环。谢谢!

[Edit-1] 下面是一个更好的代码片段。

public void foo() {
Map<String, Integer> myMap = new HashMap<>();
List<String> keys = getKeysFromAnotherFunction();
Integer value = getValueToBeInserted(); // Difficult to show my actual use case. Imagine that some value is getting computed which has to be inserted for the keys.
for (String key : keys) {
myMap.put(key, value);
}

List<String> keys2 = getNextSetOfKeys();
Integer newValue = getValueToBeInserted();
for (String key : keys2) {
myMap.put(key, newValue);
}
}

最佳答案

使用收集器,比如:

Map<String, Integer> myMap = keys.stream()
.collect(Collectors.toMap(key -> key,
val -> value, (a, b) -> b));

关于java - 如何使用 Java Streams 为 HashMap 的多个键插入相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55815243/

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