java 数组按4000个一组再分组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 数组按4000个一组再分组相关的知识,希望对你有一定的参考价值。
如题
现在有一个XXVO[]实体bean 数组,length不确定,现在想4000个放到做一次处理怎么实现,
比如 数组长度10000
第一次 处理XXVO[0]-XXVO[3999]
第二次 处理XXVO[4000]-XXVO[7999]
第二次 处理XXVO[8000]-XXVO[9999]
实际是这样的,解析xml 会产生一个比较大的VO数组
循环数组,insert 数据库中,内存溢出
所以现在想分组处理4000个一次处理
<empNO></embNO>---就是一个baseInfoVO的实体bean
多个baseInfoVO ==实体bean 数组
现在就是想把数组分成多个小数组
有多少数据就读多少数据,只不过4000个为一次,打包处理比如 一个10000,先处理4000,然后再处理4000,最后2000在处理
对解析后的数据全保存到实体bean 数组中
public void test()
int[] i = new int[10];
int len = i.length;
int count = len/4000;
//够4000的一组处理
for(int j = 0 ; j < count ; j++)
for(int m = 0 ; m<4000;m++)
System.out.println(i[m+j*4000]);
//进行处理
//剩下的不够4000的处理
for(int m = 0 ; m<len%4000;m++)
System.out.println(i[m+count*4000]);
参考技术A 我觉得你设置一个变量i,i从0开始。
每次处理(i*4000+0)到(i*4000+3999)的数据(加一个条件在最先,如果i*4000+3999小于等于数组.length的话),每次处理一段数据后,i++。
当新数组,i归零。 参考技术B 可以考虑用多线程去处理,这样更快些。
http://lshh83.javaeye.com/blog/334214 参考技术C 方法一(倒叙):
var i =['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r'];
var str = "";
for(var j = i.length-1 ; j >= 0 ; j--)
str = str + i[j];
if(j % 4 == 0)console.info("MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM:"+j);
console.info(str);
var str = "";
方法二(顺序+判断):
var i =['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r'];
var str = "";
for(var j = 0 ; j < i.length ; j++)
str = str + i[j];
if((j+1) % 19 == 0)
console.info("MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM:"+j);
console.info(str);
var str = "";
if(j == i.length-1 && (j+1) % 19 != 0)
console.info("MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM:"+j);
console.info(str);
var str = "";
参考技术D 解析文件后的信息你能全部保存到数组中????
(Java) LeetCode 25. Reverse Nodes in k-Group —— k个一组翻转链表
Given a linked list, reverse the nodes of a linked list k at a time and return its modified list.
k is a positive integer and is less than or equal to the length of the linked list. If the number of nodes is not a multiple of k then left-out nodes in the end should remain as it is.
Example:
Given this linked list: 1->2->3->4->5 For k = 2, you should return: 2->1->4->3->5 For k = 3, you should return: 3->2->1->4->5
Note:
- Only constant extra memory is allowed.
- You may not alter the values in the list‘s nodes, only nodes itself may be changed.
以上是关于java 数组按4000个一组再分组的主要内容,如果未能解决你的问题,请参考以下文章