java中List按指定大小分割
之前写过的代码,几个月后遇到类似的功能,感觉很熟悉,稍微费些劲也能做到,但是觉得有些不甘。明明之前整理好的为什么要重新做?百度参考其他人的思路感觉不是很顺心,个人原因吧。于是翻箱倒柜找出以前的代码,贴在这里留作笔记,或许也有其他同行有相似需求,聊做参考。
/**
* 数组切分
*
*/
public class PartitionList { /**
* 方式一
* 非均分,最后一组数量可能小于其它组数量
* @param list
* @param unitSize
* @return
*/
public static <T> List<List<T>> splitList_1(List<T> list, int unitSize) {
if (list == null || list.isEmpty() || unitSize < 1)
return null; int wholeSize = list.size();
int groupNum = wholeSize / unitSize;
List<List<T>> result = new ArrayList<List<T>>(); for (int i = 0; i < groupNum; i++) {
List<T> subList = list.subList(i * unitSize, (i + 1) * unitSize);
result.add(subList);
} if(unitSize * groupNum < wholeSize){
List<T> restList = list.subList(unitSize * groupNum, wholeSize);
result.add(restList);
} return result;
} /**
* 方式二
* 非均分,最后一组数量可能小于其它组数量
* @param list
* @param unitSize
* @return
*/
public static <T> List<List<T>> splitList_2(List<T> list, int unitSize) {
if (list == null || list.isEmpty() || unitSize < 1)
return null; int wholeSize = list.size();
List<List<T>> result = new ArrayList<List<T>>(); int start = 0;
int end = 0;
while(start < wholeSize){
end = start + unitSize;
if(end > wholeSize){
end = wholeSize;
}
List<T> subList = list.subList(start, end);
result.add(subList);
start = start + unitSize;
}
return result;
}
}
当然,这里面也是有参考其他大拿思路的地方,自己稍作了些改动。
百度过程中发现有人提到guava,appache ListUtil,java8新特性均可切分List,在这里Mark一下。
java中List按指定大小分割的更多相关文章
- JAVA将byte数组(byte[])按照指定大小分割成多个byte数组
/** * 将byte数组按照指定大小分割成多个数组 * @param bytes 要分割的byte数组 * @param subSize 分割的块大小 单位:字节 * @return 指定大小的by ...
- Java中计算对象的大小
一.计算对象大小的方法 Java中如何计算对象的大小呢,找到了4种方法: 1.java.lang.instrument.Instrumentation的getObjectSize方法: 2.BTrac ...
- Java中,数值比较大小,以及数值判断相等
Java中,数值比较大小,以及数值判断相等
- Java中字符串相等与大小比较
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...
- Java中字符串相等与大小比較
在C++中,两个字符串比較的代码能够为: (string1==string2) 但在java中,这个代码即使在两个字符串全然同样的情况下也会返回false Java中必须使用string1.equal ...
- java将list分为指定大小的新集合
上代码: import java.util.ArrayList; import java.util.List; public class JayCommonUtil { /** * 按指定大小,分隔集 ...
- java中删除list指定元素遇到的问题
java删除list中指定的元素可以用remove()函数,但会存在一个问题,举个例子来说 假如有a,b,c,d,e这个list,用remove()方法删除第一个元素之后,b,c,d,e会往前移动,此 ...
- 【java】初始化一个指定大小的list,在指定位置set存入元素,下标越界
List使用过程中,出现这样的问题,出现异常:java.lang.IndexOutOfBoundsException: Index: 1, Size: 0 List<String> lis ...
- java中import机制(指定import和import *的区别)
转自:https://www.cnblogs.com/dtts/p/4692480.html java中有两种包的导入机制,总结如下: 单类型导入(single-type-import), ...
随机推荐
- 使用pyinstaller打包多个py文件为一个EXE文件
1. 安装pyinstaller. pip install pyinstaller !!!!64位win7上打包后始终不能用,提示找不到ldap模块,换了32位win7就好了.!!!!(代码中涉及ld ...
- 一个springboot注解不成功的小问题
报错: Consider defining a bean of type ''xxx" in your configuration. 最后发现是POM.xml里面 关于mybatis的包 & ...
- 2015-112 ado.net2
CRUD:create read update delete 七. 数据绑定数据列的转换 在gridview中添加<OnRowDataBound="GridView1_RowDataB ...
- vbs中对excel的常用操作
使用QTP自动化测试中,用到对excel的读写操作,这里把一些常用对excel操作的方法进行了归纳,总结.(对excel格式设置的常用操作这里没有进行总结.) Function DataToExcel ...
- 集合框架之map
Map实现类用于保存具有映射关系的数据.Map保存的每项数据都是key-value对,也就是由key和value两个值组成.Map里的key是不可重复的,key用户标识集合里的每项数据. Map提供了 ...
- mysql:mysql is neither service nor target!?(suse12 sp2 )
今天想在自己的虚拟机上安装mysql,安装好了并且初始化之后,一直无法启动mysql. 1.service mysql start; 报错:mysql is neither service nor t ...
- 小程序一个大盒子里面的盒子内容居中对其显示wxss写法
对小程序研究感兴趣的可加(交流QQ群:604788754)入群联系群主可得到小程序教学资源. 这个案例只是想展示效果,内容部分未进行for循环绑定处理: WXML: <view class=&q ...
- springboot秒杀课程学习整理1-5
1)交易模型设计 交易模型(用户下单的交易模型)OrderModel id(String 交易单号使用String), userId,itemId,amount(数量),orderAmount(总金额 ...
- 强大的金融类图表库 TradingView 使用分享
这段时间刚好做币圈交易所,运用到了现在最火的金融类图表库 -- TradingView ,就是强大,基本上现在的火币网(https://www.huobi.com),币安网(https://www.b ...
- redis持久化数据的机制——转发
转载:https://www.cnblogs.com/xingzc/p/5988080.html Redis提供的持久化机制(RDB和AOF) Redis提供的持久化机制 Redis是一种面向“k ...