Lambda表达式是一种简洁的函数表示方式,它允许你在代码中内联定义匿名函数。在Java中,你可以使用lambda表达式和Spliterator
接口来将Iterable
对象拆分成块(chunks)。以下是一个示例代码,展示了如何实现这一功能:
import java.util.ArrayList;
import java.util.List;
import java.util.Spliterator;
import java.util.function.Consumer;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;
public class IterableChunker {
public static <T> List<List<T>> chunk(Iterable<T> iterable, int chunkSize) {
Spliterator<T> spliterator = iterable.spliterator();
List<List<T>> chunks = new ArrayList<>();
while (true) {
List<T> chunk = StreamSupport.stream(spliterator, false)
.limit(chunkSize)
.collect(Collectors.toList());
if (chunk.isEmpty()) {
break;
}
chunks.add(chunk);
}
return chunks;
}
public static void main(String[] args) {
List<Integer> numbers = List.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
int chunkSize = 3;
List<List<Integer>> chunks = chunk(numbers, chunkSize);
chunks.forEach(System.out::println);
}
}
Spliterator
接口,可以进行并行处理,提高性能。Iterable
对象不为空。Iterable
对象不为空。通过以上方法,你可以使用lambda表达式和Spliterator
接口将Iterable
对象拆分成块,并在各种应用场景中使用。
领取专属 10元无门槛券
手把手带您无忧上云