实例如下:
/** * 将一个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]]
以上这篇java中将一个list等分成n个list的工具方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。
如对本文有疑问, 点击进行留言回复!!
SpringBoot实现本地存储文件上传及提供HTTP访问服务的方法
Java实现AES/CBC/PKCS7Padding加解密的方法
SpringBoot整合Spring Security的详细教程
IDEA 非常重要的一些设置项(一连串的问题差点让我重新用回 Eclipse)
详解Springboot2.3集成Spring security 框架(原生集成)
网友评论