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 数组中

//System.out.println 改成你要处理的方法就可以了
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个一组再分组的主要内容,如果未能解决你的问题,请参考以下文章

js将数组按6个一组分割

Java 随机分组

c语言切割字符串存入数组?

java8 stream对数组按条件进行分组

左神算法进阶班1_5BFPRT算法

Java 对已经排好序的数组进行分组。