2017-02-03 4 views
1

私はSpring Batchの作業を開始したばかりで、ItemReaderで読み込むアイテムのリストを維持することがベストプラクティスであると思っていました。Springバッチ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; 
} 

インデックスを使用して簡単にリストを短くしない対このアプローチの利点は何ですか?私が見た例のような何かを持っていますか例えば:私は第二のアプローチで不利な点を、以下の考えることができる

public Model read(){ 
    if(items.size() > 0) 
     return new Model(items.remove(0)); 
    return null; 
} 

答えて

2

  • itemsは、その上に一回の反復の後に使用可能な残りません。
  • Listの具体的なタイプによっては、処理が遅くなることがあります。それがLinkedListだった場合は、問題はないはずです。しかし、ArrayListの場合、多くの要素はすべてremoveにシフトされます。
関連する問題