迭代所有数据的最佳方法是什么?
问题描述:
我有260万行,我想每次迭代限制20000行。迭代所有数据的最佳方法是什么?
下面是简单的代码:
int limit_size=200000;
int rowCount=getrowCount();
startPoint=0;
endPoint=limit_size;
while
getData(startPoint,endPoint)
startPoint=endPoint+1;
endPoint=endPoint+limit_size
什么是所有数据0迭代,以260万的方式吗?
答
for (<DataType> d : data) { ... }
,或者
for (int i = 0; i < 2600000; i++) { ... }
哪里......你是在循环
答
int limit_size=200000;
int rowCount=getrowCount();
startPoint=0;
endPoint=limit_size;
while (startPoint < rowCount)
{
if (endpoint > rowCount)
endpoint = rowCount;
getData(startPoint,endPoint)
startPoint=endPoint+1;
endPoint=endPoint+limit_size;
}
答
内将代码通常你有一个循环内循环。外部循环将是一个while循环 - 而N <数组大小 - 内部循环将以N开始并增加,直到N> = oldN + 20000(或大于数组大小)。
答
所有的答案都是正确的,但你可以考虑Iterator对于巨阵来说更快。我的确在过去的一些测试:你可以在这里找到一个紧凑的简历
http://www.slideshare.net/venergiac/advanced-java-23714810
幻灯片11
你的问题是不可理解的:通过任何集合或元素乘元素的简单循环负荷将限制你迭代的大小为1,这足够小。你想对你需要描述的数据块做任何事情 –
那是..格罗维什还是什么?它看起来不像标准的Java。 –