作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 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/
我是一名优秀的程序员,十分优秀!