将list分成等数量
2024-09-29 00:09:08
import java.util.ArrayList;
import java.util.List; public class CollectionGroupUtil { public static List groupListByQuantity(List list, int quantity) {
if (list == null || list.size() == 0) {
return list;
} if (quantity <= 0) {
new IllegalArgumentException("Wrong quantity.");
} List wrapList = new ArrayList();
int count = 0;
while (count < list.size()) {
wrapList.add(list.subList(count, (count + quantity) > list.size() ? list.size() : count + quantity));
count += quantity;
} return wrapList;
} }
import java.util.ArrayList;
import java.util.List; import org.junit.Test; public class CollectionGroupUtilTest { /**
* 大于分组数量的情况
*/
@Test
public void test() {
List<String> allList = new ArrayList<String>();
for (int i = 1; i <= 504; i++) {
allList.add(i + "");
} List<List<String>> groupList = CollectionGroupUtil.groupListByQuantity(allList, 50);
int i = 0;
List<String> list = null;
for (int c = 0; c < groupList.size(); c++) {
list = groupList.get(c); System.out.println("第" + (c + 1) + "组: ");
for (String temp : list) {
System.out.print(temp + ", ");
}
System.out.println();
}
} /**
* 小于分组数量的情况
*/
@Test
public void test2() {
List<String> allList = new ArrayList<String>();
for (int i = 1; i <= 45; i++) {
allList.add(i + "");
} List<List<String>> groupList = CollectionGroupUtil.groupListByQuantity(allList, 50);
int i = 0;
List<String> list = null;
for (int c = 0; c < groupList.size(); c++) {
list = groupList.get(c); System.out.println("第" + (c + 1) + "组: ");
for (String temp : list) {
System.out.print(temp + ", ");
}
System.out.println();
}
} /**
* 集合只有一个记录的情况
*/
@Test
public void test3() {
List<String> allList = new ArrayList<String>();
for (int i = 1; i <= 1; i++) {
allList.add(i + "");
} List<List<String>> groupList = CollectionGroupUtil.groupListByQuantity(allList, 50);
int i = 0;
List<String> list = null;
for (int c = 0; c < groupList.size(); c++) {
list = groupList.get(c); System.out.println("第" + (c + 1) + "组: ");
for (String temp : list) {
System.out.print(temp + ", ");
}
System.out.println();
}
} /**
* 空集合的情况
*/
@Test
public void test4() {
List<List<String>> groupList = CollectionGroupUtil.groupListByQuantity(null, 50);
System.out.println(groupList); groupList = CollectionGroupUtil.groupListByQuantity(new ArrayList(), 50);
System.out.println(groupList);
} /**
* 集合刚满一个分组的情况
*/
@Test
public void test5() {
List<String> allList = new ArrayList<String>();
for (int i = 1; i <= 50; i++) {
allList.add(i + "");
} List<List<String>> groupList = CollectionGroupUtil.groupListByQuantity(allList, 50);
int i = 0;
List<String> list = null;
for (int c = 0; c < groupList.size(); c++) {
list = groupList.get(c); System.out.println("第" + (c + 1) + "组: ");
for (String temp : list) {
System.out.print(temp + ", ");
}
System.out.println();
}
} }
最新文章
- 附录C 编译安装Hive
- js对象/数组深度复制
- 20160303 - 升级 Windows 10 版本 1511 后,文件夹默认打开方式为 cmd 的修复
- js-JavaScript高级程序设计学习笔记2
- linux设备驱动归纳总结(十):1.udev&;misc【转】
- Dispatcher.BeginInvoke()方法使用不当导致UI界面卡死的原因分析
- webform登录操作中正则表达式运用
- Android数字签名解析(三)
- AJAX跨域调用ASP.NET MVC或者WebAPI服务
- win10 uwp 按下等待按钮
- spring-mvc 集成 activeMq 常见问题 + 解决方案 (仅供参考)
- poj 1154 letters (dfs回溯)
- socket(TCP)通讯之Python实现
- hdu-3746(kmp)
- OO第三阶段总结
- 原 用Tomcat服务器配置https双向认证过程实战
- [Unity-6] GameObject有时候渲染不出来
- 响应式下的雪碧图解决方案 - 活用background-size / background-position
- 搭建和启动javaWeb项目
- jquery hide和show方法
热门文章
- SQL server 数据库基础语句 子查询 基础函数
- spring 配置多个properties
- 基于BranchTraceStore机制的CPU执行分支追踪工具 —— CpuWhere [修正版 仅驱动]
- iOS 查看包架构信息
- mvc的model验证,ajaxhelper,验证机制语法
- HTML5微信播放全屏问题的解决方法
- v-if与v-show的区别与选择
- VS打包软件部署------ClickOnce应用安装 (各版本.net引导文件安装,再发布文档离线安装下载地址)
- Spring框架中的aop操作之二 通过配置文件实现增强
- UIViewAnimationOptions