java - 添加到ArrayList后日期发生变化

标签 java object for-loop

我有以下内容:

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 ,清除它然后添加最后的值。

关于java - 添加到ArrayList后日期发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15551541/

相关文章:

java - 我的静态 util 方法线程安全吗

java - 实时监控 JVM 的堆使用情况

javascript - 在 Javascript 中“卡住”数组?

Javascript:函数、对象、new ....有点困惑

java - 匹配字符串可选结尾的正则表达式

java - Java 中以方法的形式将 int 数组的内容相加

javascript - 如何使用数组元素作为 indexOf 方法的参数?

java - 文件路径的 Ant Propertyregex 部分

java - 为什么 Android Studio 要我使用 For Each 而不是 For Loop?

java - 在 netbeans 7.1 中表示泰米尔语 unicode