学习Elastic-Job - 分布式定时任务框架
源码查看多线程分片操作时工具类采用集合类Google Guava包进行list的分组操作
//均分为每个子list大小为2的嵌套list Lists.partition()
可利用此工具分组list操作
package com.dangdang.ddframe; import java.util.ArrayList; import java.util.List; import com.google.common.collect.Lists; public class Test { class Foo { private int id; private String name; public Foo(int id, String name) { this.id = id; this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "Foo [id=" + id + ", name=" + name + "]"; } } public static void main(String[] args) { List<Foo> data = new ArrayList<Foo>(); for (int i = 0; i < 20; i++) { Test.Foo f = new Test().new Foo(i, i + "名称"); data.add(f); } List<List<Foo>> splitData = Lists.partition(data, data.size() / 10); System.out.println("分组数量:" + data.size() / 10); System.out.println(splitData.size()); for (int i = 0; i < splitData.size(); i++) { System.out.println("分组:" + i); // List<Foo> s = splitData.get(i); System.out.println(splitData.get(i).toString()); } } }