使用流根据键在键值对上应用不同的功能

DsC*_*Cpp 5 java hashmap java-8 java-stream

目前代码使用普通的旧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..
  }
}
Run Code Online (Sandbox Code Playgroud)

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

someHashMap.entrySet().stream().apply((key,value) -> if preEvalObj.equals(key) lambda1 else lambda2)
Run Code Online (Sandbox Code Playgroud)

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

DsC*_*Cpp 1

使用@nullpointer的答案,如果目标是改变值,你可以这样做

myHashMap.entrySet().stream().forEach(e -> {
      if (!e.getKey().equals(trigger))
          e.setValue(setNewValue);
      else
          e.setValue(setOtherNewValue);
  });
}
Run Code Online (Sandbox Code Playgroud)