gpt4 book ai didi

java - 如何从java中的拆分器返回下一个元素

转载 作者:搜寻专家 更新时间:2023-10-31 19:51:28 26 4
gpt4 key购买 nike

我想从拆分器中获取下一个元素,而不仅仅是对下一个元素“执行操作”。例如通过实现下面的方法

<T> T getnext(Spliterator<T> s) {

}

我发现的所有搜索结果都说 tryAdvance() 就像迭代器 hasNext() 和 next() 的组合,除了这是一个大谎言,因为我无法获取下一个元素,只是“对下一个执行操作”元素”。

最佳答案

您可以将项目包装在列表中,然后从该列表返回:

    public static <T> T getNext(Spliterator<T> spliterator) {
List<T> result = new ArrayList<>(1);

if (spliterator.tryAdvance(result::add)) {
return result.get(0);
} else {
return null;
}
}

为了让调用者更清楚这是一个可能返回 null 的操作,请考虑返回 Optional:

    public static <T> Optional<T> getNext(Spliterator<T> spliterator) {
final List<T> result = new ArrayList<>(1);

if (spliterator.tryAdvance(result::add)) {
return Optional.of(result.get(0));
} else {
return Optional.empty();
}
}

关于java - 如何从java中的拆分器返回下一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57820272/

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