java 采番_java-番石榴的Streams :: findLast实现

本文探讨了Java中Streams的findLast方法的实现细节,包括OptionalState类的使用、分隔符处理策略和不同情况下的处理逻辑。作者指出,实现中存在一些可以优化的地方,并通过示例和测试代码解释了可能的优化方法。
摘要由CSDN通过智能技术生成

我正在研究番石榴中Streams :: findLast的实现,并且在尝试理解它的同时,有些事情我根本无法掌握.这是它的实现:

public static java.util.Optional findLast(Stream stream) {

class OptionalState {

boolean set = false;

T value = null;

void set(@Nullable T value) {

set = true;

this.value = value;

}

T get() {

checkState(set);

return value;

}

}

OptionalState state = new OptionalState();

Deque> splits = new ArrayDeque<>();

splits.addLast(stream.spliterator());

while (!splits.isEmpty()) {

Spliterator spliterator = splits.removeLast();

if (spliterator.getExactSizeIfKnown() == 0) {

continue; // drop this split

}

// Many spliterators will have trySplits that are SUBSIZED even if they are not themselves

//

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值