在Java中,如何在不更改第一个arraylist值的情况下找到两个arraylist之间的差异?
我有两个数组列表名为fw_week和sw_week。。。 现在必须计算fw_diff,即fw_周和sw_周之间的差值 和sw_diff,即sw_周和fw_周之间的差异 我用了下面的脚本在Java中,如何在不更改第一个arraylist值的情况下找到两个arraylist之间的差异?,java,Java,我有两个数组列表名为fw_week和sw_week。。。 现在必须计算fw_diff,即fw_周和sw_周之间的差值 和sw_diff,即sw_周和fw_周之间的差异 我用了下面的脚本 fw_diff=fw_week; sw_diff=sw_week; fw_diff.removeAll(sw_week); sw_diff.removeAll(fw_week); 在这个例子中,我正确地得到了fw_diff,但是fw_week值也被更改,现在它等于fw_diff,
fw_diff=fw_week;
sw_diff=sw_week;
fw_diff.removeAll(sw_week);
sw_diff.removeAll(fw_week);
在这个例子中,我正确地得到了fw_diff,但是fw_week值也被更改,现在它等于fw_diff,所以第二个值sw_diff给出了错误的值,但是我不想更改fw_week和sw_week值。。。因此,请任何人帮助我解决此问题……您需要克隆阵列:
fw_diff=fw_week.clone();
sw_diff=sw_week.clone();
在您执行任何删除操作之前。我们在应用程序中执行相同的操作,如下所示:- 我们的场景是我们有2个arraylist,我需要找出第一个和第二个arraylist之间的区别 以下是代码片段:-
this.lstDifference=(ArrayList<String>) ListUtils.subtract(FirstArrayList,SecondArrayList);
this.lstDifference=(ArrayList)ListUtils.subtract(FirstArrayList,SecondArrayList);
arraylist的类型可以根据您的两个arraylist进行更改
fw_diff= fw_week.clone().removeAll(sw_week)
sw_diff=sw_week.clone().removeAll(fw_week)
更有效的方法是:
fw_diff= fw_week.clone().removeAll(sw_week)
sw_diff=sw_week.clone().removeAll(fw_diff)
这里,
fw_diff
包含两个列表的交互作用。所以现在,对于sw_diff
,我们只需要从sw_week
中删除fw_diff
。无需删除所有的fw_week
您对新解决方案有何看法,或者你想为你写它?检查这个问题谢谢你Jon先生但在完成计算后我不想更改fw_week和sw_week值,因为我需要它们进一步计算…@RamkumarPfw_week
和sw_week
列表未被触及,因为你正在使用它们的克隆,而不是列表本身。@RamkumarP您使用的是Java,对吗?