我有一个未定义长度的java流。现在我需要从数据库加载一些元数据并将其分配给流数据。
我不能:
因此我认为我可以在数据库的分区中加载元数据。
我需要一个像这样的方法:
<T> Stream<List<T>> partition(Stream<T> stream, int partitionSize)
所以我可以像这样使用它
partition(dataSource.stream(), 1000)
.map(metadataSource::populate)
.flatMap(List::stream)
.forEach(this::doSomething);
我已经找到Guava's Iteralbes#partition,但这会迫使我将流转换为可迭代的,对其进行分区并再次将其转换为流。是否为流分区内置了一些内容,还是有一种简单的方法可以自己实现它?
答案 0 :(得分:2)
我还没有找到现有的方法,所以我自己实现了一个:
{{1}}