gpt4 book ai didi

java-8 在不创建新列表的情况下过滤列表

转载 作者:搜寻专家 更新时间:2023-10-30 19:39:53 24 4
gpt4 key购买 nike

我正在寻找最简洁的方法来过滤 Java-8 中的列表,使用简单的 lambda Predicate无需创建新列表

特别是,此解决方案不合适,因为 toList() 返回一个新的 List:

List<Person> beerDrinkers = persons.stream()
.filter(p -> p.getAge() > 16)
.collect(Collectors.toList());

请注意,以下解决方案也不起作用,因为列表应该clear()其原始值(但显然,如果您在过滤之前清除它, 没有什么可以过滤了...):

persons.stream()
.filter(p -> p.getAge() > 16)
.forEach((p) -> persons.add(p));

(此外,我更喜欢不涉及使用第 3 方库或框架的解决方案)

最佳答案

beerDrinkers.removeIf(p -> p.getAge() <= 16);

关于java-8 在不创建新列表的情况下过滤列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31760421/

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