java8 将list 分段 每段大小200
你可以使用Java 8的Stream API来实现将List分段的操作。以下是一个示例代码:
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
List<Integer> list = IntStream.rangeClosed(1, 1000)
.boxed()
.collect(Collectors.toList());
int segmentSize = 200;
List<List<Integer>> segmentedLists = IntStream.range(0, (list.size() + segmentSize - 1) / segmentSize)
.mapToObj(i -> list.subList(i * segmentSize, Math.min((i + 1) * segmentSize, list.size())))
.collect(Collectors.toList());
for (List<Integer> segment : segmentedLists) {
System.out.println(segment);
}
}
}
在这个示例中,我们首先创建了一个包含1000个整数的List。然后,我们定义了每个段的大小为200。接下来,我们使用IntStream.range生成一个从0到段数的整数流,并使用mapToObj将每个段的索引映射为对应的子列表。最后,我们使用collect将这些子列表收集到一个新的List中。
运行以上代码,你将会得到类似以下的输出:
[1, 2, ..., 199, 200]
[201, 202, ..., 399, 400]
[401, 402, ..., 599, 600]
...
[801, 802, ..., 999, 1000]
每个子列表的大小都是200,除了最后一个子列表可能会小于200,因为原始的List的大小不一定是200的整数倍
原文地址: https://www.cveoy.top/t/topic/ivFX 著作权归作者所有。请勿转载和采集!