DsCpp :
Currently the code use plain old foreach loop
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..
}
}
And I'm trying to achieve something like
someHashMap.entrySet().stream().apply((key,value) -> if preEvalObj.equals(key) lambda1 else lambda2)
Can I use streams to achieve my goal?
Naman :
One possible way(not using streams though) could be to iterate over the key, value pair (BiConsumer
implementation) as:
someHashMap.forEach((key, value) -> {
if (preEvalObj.equals(key)) {
someOpsOnValue(); // lambda1Onvalue
} else {
someOtherOpsOnValue(); // lambda2lambda1Onvalue
}
});
or the same expressed as a little more readable at least IMHO
BiConsumer<String, Float> biConsumer = (key, value) -> {
if (key.equals("123")) { // preEvalObj
someOpsOnValue(); // lambda1Onvalue
} else {
someOtherOpsOnValue(); // lambda2lambda1Onvalue..
}
};
someHashMap.forEach(biConsumer);
Side note, the constructor is redundant for String
initialisation -
String preEvalObj = "123";