gpt4 book ai didi

java - 使用 Java 8 流减小列表的大小

转载 作者:行者123 更新时间:2023-12-02 01:52:46 25 4
gpt4 key购买 nike

我想减小 map 对象有序列表的大小(删除一些元素)。除非满足特定条件,否则列表中的所有对象都应被丢弃。当满足该条件时,该列表的所有下一个元素都应保留在列表中。我有以下代码。我想对 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());
}

注意:我对现有代码进行了编辑,以避免在 List 中可能存在没有 key 的 Map 时发生 NPE service_id

关于java - 使用 Java 8 流减小列表的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59787026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com