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 回答