0

私は次のものを持っています:

List<ArrayList<AvailablePeriodObj>> outputLists = new ArayList<ArrayList<AvailablePeriodObj>>();

ArrayList<AvailablePeriodObj> partOutputList = new ArrayList<AvailablePeriodObj>();    
DateTime beginCheck = periodsList.get(0).getStart();
DateTime endCheck = periodsList.get(0).getEnd();

for(int i= 0; i< periodsList.size(); i++) {
            AvailablePeriodObj apo = periodsList.get(i);

            if(apo.getStart().equals(beginCheck) && apo.getEnd().equals(endCheck)) { 
                partOutputList.add(apo);
            } else {
                outputLists.add(partOutputList);
                partOutputList.clear();
                beginCheck = apo.getStart();
                endCheck = apo.getEnd();
                partOutputList.add(apo);
            }
            if(i== (periodsList.size() - 1)){
                outputLists.add(partOutputList);
            }

        }

これにより、開始と日付のすべてのペアの新しいリストを作成しています。私の問題は、プロセスが完了した後、すべてのリスト内のすべてのオブジェクトが最後に使用された開始と日付の値を取得することです。

結果として私が欲しいのは、いくつの異なる開始日ペアがあるかに応じて、複数の ArraLists です。

4

1 に答える 1

1

partOutputList.clear(); 新しいpartOutputListインスタンスの作成 ( )を呼び出さないでくださいpartOutputList = new ArrayList<AvailablePeriodObj>()

今行っているのは、同じpartOutputListインスタンスをoutputListsに追加し、それをクリアしてから最後の値を追加することだけです。

于 2013-03-21T16:28:58.730 に答える