我有以下几点:
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,这取决于有多少不同的开始日期对。
发布于 2013-03-22 00:28:59
请勿调用partOutputList.clear();创建新的partOutputList实例(partOutputList = new ArrayList<AvailablePeriodObj>())。
您现在要做的就是将相同的partOutputList实例添加到outputLists中,清除它,然后添加最后一个值。
https://stackoverflow.com/questions/15551541
复制相似问题