java 用stream流将list数组每1000个进行拆分怎么写
要将一个List数组每1000个元素进行拆分,可以使用Java的Stream流和Collectors.toList()方法来实现。下面是一个示例代码:
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
public class SplitListExample {
public static void main(String[] args) {
List<Integer> list = IntStream.rangeClosed(1, 9999)
.boxed()
.collect(Collectors.toList());
List<List<Integer>> subLists = splitList(list, 1000);
System.out.println(subLists.size()); // 输出结果为10
System.out.println(subLists.get(0).size()); // 输出结果为1000
System.out.println(subLists.get(9).size()); // 输出结果为999
}
public static <T> List<List<T>> splitList(List<T> list, int batchSize) {
return IntStream.range(0, (list.size() + batchSize - 1) / batchSize)
.mapToObj(i -> list.subList(i * batchSize, Math.min((i + 1) * batchSize, list.size())))
.collect(Collectors.toList());
}
}
在示例代码中,首先创建一个包含1到9999的整数的List。然后使用splitList方法将这个List按照每1000个元素进行拆分。拆分后的结果是一个List的List,每个子List包含1000个元素,除了最后一个子List可能包含少于1000个元素。
splitList方法使用IntStream.range生成一个0到n的整数流,其中n是拆分后的子List数量。然后使用mapToObj将每个整数映射为对应的子List。在映射过程中,使用subList方法从原始List中获取每个子List的元素范围。最后,使用Collectors.toList将子List收集到一个List中并返回。
运行示例代码,可以看到成功将List数组按照每1000个元素进行拆分
原文地址: https://www.cveoy.top/t/topic/iAo8 著作权归作者所有。请勿转载和采集!