`
tonyJ
  • 浏览: 142590 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

Java-大集合拆分为指定大小的小集合

 
阅读更多
因为Oracle数据的in 最大允许1000 ,超过就会报错, 所以需要将集合拆分为多个集合进行处理.
package test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Test {
	/** 
	 *  拆分集合 
	 *  @param <T> 
	 *  @param resList要拆分的集合 
	 *  @param count 每个集合的元素个数 
	 *  @return返回拆分后的各个集合 
	 **/
	public static <T> List<List<T>> split(List<T> resList, int count) {
		if (resList == null || count < 1)
			return null;
		List<List<T>> ret = new ArrayList<List<T>>();
		int size = resList.size();
		if (size <= count) {
			// 数据量不足count指定的大小
			ret.add(resList);
		} else {
			int pre = size / count;
			int last = size % count;
			// 前面pre个集合,每个大小都是count个元素
			for (int i = 0; i < pre; i++) {
				List<T> itemList = new ArrayList<T>();
				for (int j = 0; j < count; j++) {
					itemList.add(resList.get(i * count + j));
				}
				ret.add(itemList);
			}
			// last的进行处理
			if (last > 0) {
				List<T> itemList = new ArrayList<T>();
				for (int i = 0; i < last; i++) {
					itemList.add(resList.get(pre * count + i));
				}
				ret.add(itemList);
			}
		}
		return ret;
	}

	/** * @param args */
	public static void main(String[] args) {
		List<String> resList = Arrays.asList("0", "1", "2", "3", "4", "5", "6",
				"7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17",
				"18", "19", "20", "21", "22", "23", "24", "25", "26", "27",
				"28", "29", "30", "31", "32", "33", "34", "35", "36", "37",
				"38", "39", "40", "41", "42", "43", "44", "45", "46", "47",
				"48", "49", "50", "51", "52", "53", "54", "55", "56", "57",
				"58", "59", "60", "61", "62", "63", "64", "65", "66", "67",
				"68", "69", "70", "71", "72", "73", "74", "75", "76", "77",
				"78", "79", "80", "81", "82", "83", "84", "85", "86", "87",
				"88", "89", "90", "91", "92", "93", "94", "95", "96", "97",
				"98", "99");
		List<List<String>> ret = split(resList, 10);
		for (int i = 0; i < ret.size(); i++) {
			System.out.println(ret.get(i));
		}
	}

}

分享到:
评论

相关推荐

    java字符拆分并转成集合.txt

    创建一个字符串“HelloWorld!!!”,将这个字符串拆分并转换成集合的方法。 自己也可以修改成汉字string类型。

    java实现把一个List集合拆分成多个的操作

    主要介绍了java实现把一个List集合拆分成多个的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    java笔试题算法-javaml:Java机器学习库

    java笔试题算法javaml Java 机器学习库 本文档涵盖了库的非常基本的文档。 Java 机器学习库在 GNU-GPL 下获得许可。 更新: -- 2016/03/03 移至 github.com -- 仍在努力从核心拆分 GPL 代码,这将减少限制,我感谢...

    java-8-Advanced

    java-8-Advanced基于来自复数视力的高级Java课程。 1.在非常规数据源上创建自定义拆分器。 2.Nio文件操作具有流,将多文件合并和flatMapping到单个流等等! 3.在com.plural.rank.student软件包中,它有一个有趣的...

    word源码java-china-ip-filter:中国大陆IP过滤器-Java

    将IP进行拆分为4段。a、b、c、d段 分段进行匹配,相较于方法一可以节省3/4的空间,但是需要的内存还是很大。 按照树形结构进行存储,a匹配才进行b的匹配,b匹配再进行c的匹配,依次匹配 只有abcd段完全匹配才说明IP...

    java8集合源码-bookmarks:在线有趣内容的书签集合

    java8集合源码书签 有趣的东西的书签集合,有些阅读或观看,有些没有。 所以链接末尾的内容可能没有价值,但它可能是。 - 用于“文档即代码”和“arc42”的 ASCIDoc 代码文档工具链,以及代码中的架构(Simon Browns...

    java8集合源码-MyFirstBoard:第一次公告牌开发研究

    java8集合源码CRUD-board-basic 组织你的学习 20.01.22 Junit4 测试 审核清单 修改测试代码 20.01.21 Junit4 测试 复习测试 20.01.20 Junit4 测试 实现 getMenuItems 服务 20.01.19 Junit4 测试 添加 getMenuItems ...

    java_calculator实现

    * 把一个字符串表达式,拆分成两个集合,一个集合包含计算中的数,一个集合包含计算中的符号 * 1.把一个表达式中的运算子提取出来 * 2.把一个表达式中的数提取出来 * 3.遍历运算子集合,优先运算乘法和除法(遇到乘法...

    Java语言基础下载

    逻辑大小和物理大小 248 链表 248 栈(stack) 249 队列: 250 树: 250 实例分析 252 内容总结 274 独立实践 275 第十六章:数据库(一) 276 学习目标 276 数据库的基本概念 277 数据的描述 277 数据联系的描述 278 ...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    3.4 小结:基本数据类型—— Java中一切数据和运算的基础 63 3.5 习题 65 第4章 Java中的程序执行流程 67 教学视频:1小时57分钟 4.1 顺序执行 67 4.2 使用if-else让程序懂得判断 68 4.2.1 if语句 68 4.2.2 ...

    java程序集合[1]

    运行命令选择框选择控件旋转图片文件的拆分鼠标自由作画日历六级单词测试将文本转化位数字并排序键盘错误计算器画板分析字符拆分窗口CheckboxGroup的例子FileDialog...... 几十个例子

    java基础学习+java

    Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(aggregate operation),或者大批量数据操作 (bulk data operation)。Stream API 借助于同样新...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    3.4 小结:基本数据类型—— Java中一切数据和运算的基础 63 3.5 习题 65 第4章 Java中的程序执行流程 67 教学视频:1小时57分钟 4.1 顺序执行 67 4.2 使用if-else让程序懂得判断 68 4.2.1 if语句 68 4.2.2 ...

    【Java面试系列】JDK 1.8 新特性之 Stream API.pdf

    Java 8 引入了全新的 Stream API,这里的 Stream 和 I/O 流不同,它更像具有 Iterable 的集合类,但行为和集合类又有所不同。 Stream 是 Java 8 的新特性,是对容器对象功能的增强,它专注于对容器对象进行各种非常...

    JavaSourceCodeAnalysis:JDK二进制阅读笔记,包括Java常用集合类和Java常用和发工具(同步工具,线程安全集合,线程池)两个部分-java source code analysis

    java.util中的集合 列表,堆栈和队列 | ArrayList是基于串联实现的线性表,没有最大容量限制(实际上有,是Integer.MAX_VALUE),可扩容。LinkedList是基于串联实现的线性表(双向链表),没有最大容量限制。 ...

    java面试笔试资料包括JAVA基础核心知识点深度学习Spring面试题等资料合集.zip

    MySQL千万级的大表要怎么优化(读写分离、水平拆分、垂直拆分).doc redis缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级.doc RPC (Remote Procedure Call)即远程过程调用.doc Spring 面试问题 TOP 50(干货推荐...

    xJavaFxTool基于JavaFx搭建的实用小工具集合

    基于JavaFx搭建的实用小工具集合,方便开发过程中的代码编写与调试,想学习javaFx的同学可以参考参考。其中包括文件复制、Cron表达式生成器、编码转换、加密解密、Time转换、路径转换、二维码生成工具、正则表达式...

    java初学者必看

    最近正在学习Java,也买了很多的有关Java方面的书籍,其中发现《跟我学Java》这本书,都的很不错啊,所以顺便拿电脑把这本书的目录敲了下来,与大家分享。尤其是那些和我一样初学Java的朋友们,看看哪一节对你有用,...

    java8集合源码-Poc_Microservices:Poc_微服务

    java8集合源码Java 微服务概念证明 什么是微服务架构 一种架构风格,将应用程序构建为一组松散耦合的服务,这些服务实现了业务功能。 启用 大的持续交付/部署。 复杂的应用。 使组织能够发展其技术堆栈。 服务使用...

    java学习3.zip

    Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(aggregate operation),或者大批量数据操作 (bulk data operation)。Stream API 借助于同样新...

Global site tag (gtag.js) - Google Analytics