与Java 8个流减少列表的大小

Tishy现在:

我想,以减少大小(删除一些元素)地图对象的有序列表中。除非满足特定条件列表的所有对象都应该被丢弃。而当这种条件满足该列表中的所有元素旁边应该留在列表中。我有以下的一段代码。我想要做同样的与Java 8。

public List<Map<String, String>> doAction(List<Map<String, String>> dataVoMap) {
    List<Map<String,String>> tempMap = new ArrayList<>();
    boolean found = false;
    for(Map<String, String> map: dataVoMap){
        if(map.get("service_id").equalsIgnoreCase("passed value") || found){
            found = true;
            tempMap.add(map);
        }
    }
    dataVoMap = tempMap;
    return dataVoMap;
}
也:

您正在寻找一个dropWhile操作,而是那一个内置的实施将需要Java-9及以上:

public List<Map<String, String>> doAction(List<Map<String, String>> dataVoMap) {
    return dataVoMap.stream()
            .dropWhile(m -> !"passed value".equalsIgnoreCase(m.get("service_id")))
            .collect(Collectors.toList());
}

:我已经编辑到现有的代码,以避免NPE时,有可能是MapList没有密钥service_id

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章