Rog*_*296 2 java-8 java-stream
我是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)
}
}
Run Code Online (Sandbox Code Playgroud)
如果我不误会你。您需要一个收集器对象,用于收集分隔符中的元素。例如:
Integer[] collector = new Integer[1];
boolean exist = itr3.tryAdvance(value -> collector[0] = value);
System.out.println(collector[0]);
Run Code Online (Sandbox Code Playgroud)
或使用另一个收集分隔符中的所有元素List
,例如:
List<Integer> collector = new ArrayList<>();
while (itr3.tryAdvance(collector::add)) ;
System.out.println(collector);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
512 次 |
最近记录: |