我刚开始使用Spring Batch,并想知道维护ItemReader中要读取的项目列表的最佳做法是什么。我看到的例子有:
private static List<Resource> items = new LinkedList<Resource>();
private static int index = 0;
private void initialize(){
items.add(new Resource());
}
和
public Model read(){
if(index < items.size())
return new Model(items.get(index++));
return null;
}
这种方法与不使用索引并简单缩短列表有什么好处? E.g:
public Model read(){
if(items.size() > 0)
return new Model(items.remove(0));
return null;
}
答案 0 :(得分:2)
我认为第二种方法存在以下缺点:
items
在一次迭代后仍然无法使用。List
的具体类型。如果它是LinkedList
,事情应该没问题。但对于ArrayList
,每个remove
都会移动很多元素。