JAVA中將一個List等分成n個list的工具方法
阿新 • • 發佈:2019-01-26
/** * 將一個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]]