gpt4 book ai didi

Java 8 Stream.skip 与谓词

转载 作者:行者123 更新时间:2023-12-02 18:31:01 27 4
gpt4 key购买 nike

是否有任何方法可以执行类似于 Stream.skip(long) 的操作,但使用 Predicate 而不是确切的数字?

我需要跳过元素,直到到达具有给定 ID 的元素,然后我需要继续应用过滤器、限制等。有什么建议吗?

最佳答案

编辑:更简洁的版本是 https://stackoverflow.com/a/52270820/57695

我怀疑你需要编写一个有状态谓词或使用像这样的包装器

public class FromPredicate<T> implements Predicate<T> {
boolean started = false;
Predicate<T> test;
FromPredicate(Predicate<T> test) { this.test = test; }

public static Predicate<T> from(Predicate<T> test) { return new FromPredicate<>(test); }

public boolean test(T t) {
return started || (started = test.test(t));
}
}

Stream中你可以这样做

Stream.of(1,2,3,4,5)
.filter(from(i -> i % 2 == 0)))
.forEach(System.out::println);

应该打印

2
3
4
5

关于Java 8 Stream.skip 与谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35791075/

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