Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中,如何在不更改第一个arraylist值的情况下找到两个arraylist之间的差异?_Java - Fatal编程技术网

在Java中,如何在不更改第一个arraylist值的情况下找到两个arraylist之间的差异?

在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_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,所以第二个值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值,因为我需要它们进一步计算…@RamkumarP
fw_week
sw_week
列表未被触及,因为你正在使用它们的克隆,而不是列表本身。@RamkumarP您使用的是Java,对吗?