舉個例子,我想這樣創建的組數無限流:如何在Java8中將流簡化爲另一個流?
0=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
1=[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
2=[20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
...
我想使用的int inifinte流作爲輸入,然後進行分組。如果第一個流迭代10次,則結果流只應迭代一次。
我的工作,但不是很優雅的代碼看起來是這樣的:
// create a stream from 0 (inclusive) to 100 (exclusive)
IntStream.iterate(0, i -> i+1).boxed().limit(100)
// slow down
.peek((i) -> {try {Thread.sleep(50);} catch (InterruptedException e) {}})
// group by tens
/* ugly: */.collect(Collectors.groupingBy(i -> i/10)).entrySet()
/* not working: */ //.makeSequentialGroups(i -> i/10)
// print to console
.forEach(System.out::println);
如何使一個int流的羣體,而不必收集和再流? (如果可能的話,即使不必使用拳擊)
您不必創建另一個流,可以在'Set'中使用'forEach'方法。 – Bubletan
@Bubletan感謝您的提示,我更新了我的問題,不再包含過時的'forEach' – slartidan