写了一个将数据分片的工具,还请大神指正问题(目前只支持list,没搞太复杂)

来源:互联网 发布:c语言100以内的素数 编辑:程序博客网 时间:2024/05/19 06:38
public class DataSplit {    public static <T> Map<Integer,List<T>> split(Integer subNum, List<T> dataSource){        Map<Integer,List<T>> rst = new HashMap<Integer, List<T>>(subNum);        for (int i = 0; i < subNum; i++) {            List<T> subLst = new ArrayList<T>();            rst.put(i, subLst);        }        for (int i = 0; i < dataSource.size(); i++) {            T t = dataSource.get(i);            int hashcode = t.hashCode();            if (hashcode<0) {                hashcode = - hashcode;            }            int mark = hashcode%subNum;            List<T> subLst = rst.get(mark);            subLst.add(t);            rst.remove(mark);            rst.put(mark, subLst);        }        return rst;    }}



如果数据是数组,可以用程序转换一下使用,分情况吧。

数组与list转化工具地址:http://blog.csdn.net/haojianxiang/article/details/50907472


0 0
原创粉丝点击