gpt4 book ai didi

java - 使用流根据键在键值对上应用不同的函数

转载 作者:搜寻专家 更新时间:2023-10-31 20:16:56 25 4
gpt4 key购买 nike

目前代码使用普通的旧 foreach 循环

String preEvalObj = new String("123");
for(Map.Entry<String, Float> entry : someHashMap.entrySet()){
String key = entry.getKey();
Float value = entry.getValue();
if(preEvalObj.equals(key)){
lambda1Onvalue...
}else{
lambda2lambda1Onvalue..
}
}

我正在努力实现类似的目标

someHashMap.entrySet().stream().apply((key,value) -> if preEvalObj.equals(key) lambda1 else lambda2)

我可以使用流来实现我的目标吗?

最佳答案

一种可能的方法(虽然不使用流)可以迭代键值对(BiConsumer 实现)如下:

someHashMap.forEach((key, value) -> {
if (preEvalObj.equals(key)) {
someOpsOnValue(); // lambda1Onvalue
} else {
someOtherOpsOnValue(); // lambda2lambda1Onvalue
}
});

或至少恕我直言,表示更易读

BiConsumer<String, Float> biConsumer = (key, value) -> {
if (key.equals("123")) { // preEvalObj
someOpsOnValue(); // lambda1Onvalue
} else {
someOtherOpsOnValue(); // lambda2lambda1Onvalue..
}
};

someHashMap.forEach(biConsumer);

旁注,构造函数对于 String 初始化是多余的 -

String preEvalObj = "123";

关于java - 使用流根据键在键值对上应用不同的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52153941/

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