实例如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
/** * 将一个list均分成n个list,主要通过偏移量来实现的 * @param source * @return */ 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; } |
测试例子如下:
1
2
3
4
5
6
7
8
9
10
11
|
@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]]
以上这篇java中将一个List等分成n个list的工具方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。