关于集合按指定长度拆解成多个集合的起因是因为一个阿里云的代码挑战赛的一道题目而有感的,
题目有一道提示是
在没有处理大数据集的情况下,这道题提交时提示的是超时异常,
然后各种百度处理大数据集后无所获,发现集合的一个sublist方法,给大数据集用集合的sublist方法处理后提交题目就通过了;下面展示代码
// 集合拆解
public static void main(String[] args) {
ArrayList<Integer> objects = new ArrayList<>();
ArrayList<List<Integer>> resultData = new ArrayList<>();
for (int t = 1; t <= 101; t++) {
objects.add(t);
}
Integer num = 20;
Integer count = 0;
for (int i = 0; i < objects.size(); i = i + num) {
System.out.println("i的值:" + i);
if (i + num > objects.size()) {
count = objects.size();
} else {
count = i + num;
}
resultData.add(objects.subList(i, count));
System.out.println(objects.subList(i, count));
}
System.out.println(resultData.toString());
}
运行结果如下:
这里演示是以指定二十个长度拆解给长度为101个集合拆成了六个集合;
实战中给百万级别的大数据集按每个集合10万的长度拆解,最后去操作拆解后的集合,否则会导致程序超时异常