我正在读取一个64000值的ArrayList,一次读取64个值。读取64个值后,应将其转换为数组,并清除列表以容纳第二组64个值。这个方法应该继续,直到它到达原始列表的末尾。我写了下面的代码,但看起来我的输出列表返回超过64个值,这不是我的目标。任何人都可以告诉我我做错了什么?
ArrayList<Integer> output = extractIntegers(array);//some method in the code
for(int i=0;i<output.size();i+=64)
{
blocks.addAll(output.subList(i, i+64));
Integer[] b = blocks.toArray(new Integer[blocks.size()]);
System.out.println(b);
b = null;
}
答案 0 :(得分:1)
这应该有效
ArrayList<Integer> output = extractIntegers(array);//some method in the code
for(int i=0;i<output.size();i+=64)
{
blocks=output.subList(i, i+64);
Integer[] b=blocks.toArray(new Integer[blocks.size()]);
System.out.println(b);
}
答案 1 :(得分:0)
您是否在每次迭代结束时清空blocks
?已发布的代码并未显示可能导致问题的原因。