我正在使用一个java.util.List预计包含大约70k对象的东西.它是从有序的数据库查询构建的,因此每次都始终以相同的顺序.此列表正在作为长时间运行任务的一部分进行迭代,该任务可能因外部问题而停止.所以我需要在下次运行任务时跳过列表中的X元素.
出于各种原因,在构建列表的数据库查询中处理此问题不是一种选择.
在进行繁重的工作之前,跳过列表中X项的最有效方法是什么?
int skip = getNumberOfItemsToSkip();
int count = 0;
for(MyThing thing : bigList){
if(count >= skip){
//do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
要么
int skip = getNumberOfItemsToSkip();
int count = 0;
//does subList maintain the order????
List<MyThing> sublist = bigList.subList(skip, bigList.size() - 1);
for(MyThing thing : sublist){
//do stuff
}
Run Code Online (Sandbox Code Playgroud)
还有另外一种方法吗?
在这种情况下,我不会使用增强的for循环.如果您通过索引访问,那么您可以简单地从一个范围开始和结束.
for(int i = getNumberOfItemsToSkip(); i < bigList.size(); i++) {
Foo foo = bigList.get(i);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3718 次 |
| 最近记录: |