gpt4 book ai didi

java-8 - 如何从 Java8 的 spliterator 中的 tryAdvance 方法返回值?

转载 作者:行者123 更新时间:2023-12-01 11:48:09 26 4
gpt4 key购买 nike

我是 Java 8 的新手,正在尝试了解 java8 的 splitIterator 功能。

我写了下面的代码,我的要求是每当我调用 get(); 时get 方法应该从 itr3 返回一个值;有可能得到相同的吗?以及如何?

public class TestSplitIterator {

static List<Integer> list = new ArrayList<Integer>();

public static void main(String args[]) {

for (int i = 0; i < 100; i++) {
list.add(i);
}
// below method call should return only one value whenever i call it;
get(list);
}

private static int get(List<Integer> list) {
Collections.sort(list, Collections.reverseOrder());

System.out.println(list);

Spliterator<Integer> itr1 = list.spliterator();
Spliterator<Integer> itr2 = itr1.trySplit();
Spliterator<Integer> itr3 = itr2.trySplit();
// i want to return value from itr3 whenever get(List list ic called)

}

}

最佳答案

如果我没理解错的话。您需要一个收集器中的元素的收集器对象。例如:

Integer[] collector = new Integer[1];

boolean exist = itr3.tryAdvance(value -> collector[0] = value);

System.out.println(collector[0]);

使用另一个List收集分割器中的所有元素,例如:

List<Integer> collector = new ArrayList<>();

while (itr3.tryAdvance(collector::add)) ;

System.out.println(collector);

关于java-8 - 如何从 Java8 的 spliterator 中的 tryAdvance 方法返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44903436/

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