Tao*_*itz 10 java java-8 java-stream
我试图弄清楚如何重写这个以使用流和过滤器来缩小我的标准并在必要时从地图中删除.
Iterator<Map.Entry<String,Object>> iter = listOfPossibleParams.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry<String,Object> entry = iter.next();
if(entry.getValue() instanceof String) {
if (StringUtils.isBlank((String) entry.getValue())) {
iter.remove();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我最初在想这样的事情,但它显然不起作为语法错误:
listOfPossibleParams.entrySet()
.stream()
.filter(p -> p.getValue() instanceof String)
.removeIf(e -> StringUtils.isBlank((String)e.getValue()));
Run Code Online (Sandbox Code Playgroud)
Tun*_*aki 15
如果您可以修改Map,那么您可以:
listOfPossibleParams.values()
.removeIf(v -> v instanceof String && StringUtils.isBlank((String) v));
Run Code Online (Sandbox Code Playgroud)
如果你想建立一个新的地图,你可以:
listOfPossibleParams.entrySet()
.stream()
.filter(p -> {
Object v = p.getValue();
return !(v instanceof String) || !StringUtils.isBlank((String) v);
})
.collect(toMap(Map.Entry::getKey, Map.Entry::getValue));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3819 次 |
| 最近记录: |