3

fw_week と sw_week という名前の 2 つの配列リストがあります... fw_week と sw_week の差である fw_diff と、sw_week と fw_week の差である sw_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 に等しいため、2 番目の値 sw_diff は間違った値を与えていますが、fw_week と sw_week の値を変更したくありません...誰でもこの問題を解決するのを手伝ってもらえますか....

4

3 に答える 3

3
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は、両方のリストの相互作用が含まれています。したがって、 for からsw_diffのみを削除する必要があります。をすべて削除する必要はありません。fw_diffsw_weekfw_week

于 2012-07-19T05:19:29.893 に答える
0

配列を複製する必要があります。

fw_diff=fw_week.clone();
sw_diff=sw_week.clone();

削除する前に。

于 2012-07-19T05:15:06.960 に答える
0

次のように、アプリケーションで同じことを行います。

私たちのシナリオでは、2 つの arraylist があり、1 つ目と 2 つ目の arraylist の違いを見つける必要があります。

以下はコードスニペットです:-

this.lstDifference=(ArrayList<String>) ListUtils.subtract(FirstArrayList,SecondArrayList);

arraylist のタイプは、2 つの arraylist に応じて変更できます。

于 2012-07-19T05:18:38.863 に答える