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), ...
随机推荐
- Python自学:第三章 使用方法pop()删除元素
motorcycle = ["honda", "yamaha", "suzuki"] last_owned = motorcycle.pop ...
- C++ for循环语句
#include "pch.h" #include<iostream> using namespace std; int main() { int i = 1, sum ...
- lockable JS function,解锁操作之前,不能重复操作
(function () { var ed = []; window.Lockable = function (lockF, options) { if (!arguments.length) { v ...
- DOM 操作成本究竟有多高,HTML、CSS构建过程 ,从什么方向出发避免重绘重排)
前言: 2019年!我准备好了 正文:从我接触前端到现在,一直听到的一句话:操作DOM的成本很高,不要轻易去操作DOM.尤其是React.vue等MV*框架的出现,数据驱动视图的模式越发深入人心,jQ ...
- Git - 生成 ssh key for Mac
终端: cd ~/ .ssh 生成 SSH KEY ssh-keygen -t rsa -C 你的油箱 前往以下目录找到生成好的 SSH KEY /Users/wzz/.ssh/id_rsa.pub
- vue v-if控制显隐,页面加载出现闪现 v-cloak
<div id="divApp"> <div v-if="type === 'A'" v-cloak> A </div> & ...
- 访问链接出现 ERR_CONTENT_DECODING_FAILED 错误的解决办法
今天跑一个应用,别人的机器上都是好的,但是本地部署就是不行.访问页面调试工具console总是提示 ERR_CONTENT_DECODING_FAILED 错误. 就是数据表格无法显示,经排查,发现是 ...
- learning makefile string example
- python(元组,不可修改序列)
元组也是序列,区别于列表,它不可更改,语法简单只要加逗号隔开即可 1.1,2,3 (1,2,3) 2.42, (42,) 3.3*(40+2) 126 3*(40+2,) (42,42,42) 4.x ...
- Saiku根据入参日期查询出对应的数据(二十)
Saiku根据入参日期查询出对应的数据 之前好像有写过一篇博客关于saiku date range的,现在进一步更新啦!!! 这里的日期筛选会更完善一些,需要提供两个参数 开始日期与结束日期(star ...