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

来源:互联网 发布:谈恋爱软件靠谱吗 编辑:程序博客网 时间:2024/06/07 13:06

原文地址:

http://blog.csdn.net/u010523770/article/details/54585261

工具方法:

/**  * 将一个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
原创粉丝点击