3 回答
TA贡献1824条经验 获得超8个赞
试试这个:
yourMap.entrySet().stream()
从这一点上,您可以管理。Stream 由 组成,Entry<Key,Value>
因此您可以检查任何您想要的内容。
TA贡献1883条经验 获得超3个赞
你需要寻找特定的键:new和old这样你就不会需要遍历地图的入口,因为如果存在密钥,他们将是唯一的。
获取特定键的值,如果它们不存在,则保持为空 String
用这些值做你的事
Map<String, String> map1 = ...;
String v1 = map1.getOrDefault("new", "");
String v2 = map1.getOrDefault("old", "");
Map<String, String> map2 = new HashMap<>();
if(!v1.isEmpty() && !v2.isEmpty() && validateMethod(v1, v2)){
// do your stuff
}
您可能会将 isEmpty 的检查放在您的validateMethod而不是 if 中
TA贡献1900条经验 获得超5个赞
需要使用 Java 8 完成
for(Map.Entry e : map1.entrySet()) {
if(e.containsKey("new")&& !e.getValue().equals("")){
String val1 = (String) e.getValue();
if(e.containsKey("old")&& !e.getValue().equals("")){
String val2 = (String) e.getValue();
//call the function-- This is boolean
if(validateMethod(val1, val2)){ // if true
Map<String, String> map2 = new HashMap<>();
map2.putAll(e);
}
}
}
}
添加回答
举报