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();
}
} }

最新文章

  1. 附录C 编译安装Hive
  2. js对象/数组深度复制
  3. 20160303 - 升级 Windows 10 版本 1511 后,文件夹默认打开方式为 cmd 的修复
  4. js-JavaScript高级程序设计学习笔记2
  5. linux设备驱动归纳总结(十):1.udev&amp;misc【转】
  6. Dispatcher.BeginInvoke()方法使用不当导致UI界面卡死的原因分析
  7. webform登录操作中正则表达式运用
  8. Android数字签名解析(三)
  9. AJAX跨域调用ASP.NET MVC或者WebAPI服务
  10. win10 uwp 按下等待按钮
  11. spring-mvc 集成 activeMq 常见问题 + 解决方案 (仅供参考)
  12. poj 1154 letters (dfs回溯)
  13. socket(TCP)通讯之Python实现
  14. hdu-3746(kmp)
  15. OO第三阶段总结
  16. 原 用Tomcat服务器配置https双向认证过程实战
  17. [Unity-6] GameObject有时候渲染不出来
  18. 响应式下的雪碧图解决方案 - 活用background-size / background-position
  19. 搭建和启动javaWeb项目
  20. jquery hide和show方法

热门文章

  1. SQL server 数据库基础语句 子查询 基础函数
  2. spring 配置多个properties
  3. 基于BranchTraceStore机制的CPU执行分支追踪工具 —— CpuWhere [修正版 仅驱动]
  4. iOS 查看包架构信息
  5. mvc的model验证,ajaxhelper,验证机制语法
  6. HTML5微信播放全屏问题的解决方法
  7. v-if与v-show的区别与选择
  8. VS打包软件部署------ClickOnce应用安装 (各版本.net引导文件安装,再发布文档离线安装下载地址)
  9. Spring框架中的aop操作之二 通过配置文件实现增强
  10. UIViewAnimationOptions