gpt4 book ai didi

java - 是否有Java流等同于变量赋值

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:08:19 28 4
gpt4 key购买 nike

有没有等价于下面的流

List<Integer> ints;
while (!(ints = this.nextInts()).isEmpty()) {
// do work
}

最佳答案

首先,感谢@Olivier Grégoire 的评论。它改变了我对新知识的回答。

为未知大小的 nextInts 编写您自己的 Spliterator,然后您可以使用 StreamSupport#streamnextInts 创建流。例如:

generateUntil(this::nextInts, List::isEmpty).forEach(list -> {
//do works
});

import static java.util.stream.StreamSupport.stream;

<T> Stream<T> generateUntil(final Supplier<T> generator, Predicate<T> stop) {
long unknownSize = Long.MAX_VALUE;

return stream(new AbstractSpliterator<T>(unknownSize, Spliterator.ORDERED) {
@Override
public boolean tryAdvance(Consumer<? super T> action) {
T value = generator.get();

if (stop.test(value)) {
return false;
}

action.accept(value);
return true;
}
}, false);
}

关于java - 是否有Java流等同于变量赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44700006/

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