JAVA中将一个List等分成n个list的工具方法

来源:互联网 发布:mysql下载32位 win7 编辑:程序博客网 时间:2024/06/08 18:15
/** * 将一个list均分成n个list,主要通过偏移量来实现的 * @param source * @return */public static <T> List<List<T>> averageAssign(List<T> source,int n){List<List<T>> result=new ArrayList<List<T>>();int remaider=source.size()%n;  //(先计算出余数)int number=source.size()/n;  //然后是商int offset=0;//偏移量for(int i=0;i<n;i++){List<T> value=null;if(remaider>0){value=source.subList(i*number+offset, (i+1)*number+offset+1);remaider--;offset++;}else{value=source.subList(i*number+offset, (i+1)*number+offset);}result.add(value);}return result;}


测试例子如下:

@SuppressWarnings("unused")public static void main(String[] args) {List<Integer> integers=new ArrayList<>();integers.add(1);integers.add(2);integers.add(3);integers.add(4);integers.add(5);List<List<Integer>> lists=averageAssign(integers, 2);System.out.println(lists);}

结果如下:

[[1, 2, 3], [4, 5]]

0 0