以下代碼將對象流拆分爲1000塊,在實例化過程中處理它們,並返回最後的對象總數。StreamEx分組到列表返回不正確的記錄數
在號碼返回的所有情況下是正確的,除非該流的大小恰好是1.在流大小爲1的情況下,返回的數是0。
任何幫助,將不勝感激。在流中沒有記錄爲0的情況下,我也必須破解返回調用。我想解決這個問題。
AtomicInteger recordCounter = new AtomicInteger(0);
try (StreamEx<MyObject> stream = StreamEx.of(myObjects)) {
stream.groupRuns((prev, next) -> recordCounter.incrementAndGet() % 1000 != 0)
.forEach((chunk) ->
{
//... process each chunk
}
);
} catch(Exception e) {
throw new MyRuntimeException("Failure streaming...", e);
} finally {
myObjects.close();
}
return recordCounter.get() == 0 ? 0 : recordCounter.incrementAndGet();
你爲什麼要返回'計數器+ 1'而不是'counter'? – wargre
因爲否則它總是返回1比它應該少。 –