簡體   English   中英

添加到ArrayList后的日期更改

[英]Date changes after added to ArrayList

我有以下幾點:

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);
            }

        }

這樣我就為所有的開始和日期對創建了新列表,我的問題是,在處理完成之后,所有列表中的每個對象都獲得了上次使用的開始和日期值。

結果我想要的是多個ArraList,具體取決於有多少個不同的開始日期對。

不要調用partOutputList.clear(); 創建一個新的partOutputList實例( partOutputList = new ArrayList<AvailablePeriodObj>() )。

您現在要做的就是將相同的partOutputList實例添加到outputLists ,清除它,然后添加最后一個值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM