我想獲得下面的
1.兩個列表之間的通用元素。
2.元素數組listB這是不提供利斯塔在利斯塔
三要素是不可用數組listB找到兩個列表中的常見元素和不同元素java中的列表
List<String> fruitsListA = new ArrayList<String>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Grapes");
List<String> fruitsListACopy = fruitsListA;
List<String> fruitsListB = new ArrayList<String>();
fruits.add("Strawberry");
fruits.add("Cranberry");
fruits.add("Orange");
fruits.add("Apple");
List<String> fruitsListBCopy = fruitsListB;
1. common elements between two list
fruitsListACopy.retainAll(fruitsListB);
2. Elements in ListB which is not available in ListA
fruitsListB.removeAll(fruitsListA);
3. Elements in ListA which is not available in ListB
fruitsListA.removeAll(fruitsListBCopy);
的情況下1:IM能夠獲得兩個列表中常見的物品。所以如果我打印fruitsListACopy它給['蘋果']
案例2:我可以看到fruitsListA自動修改我的意思,而不是所有的項目['蘋果','香蕉','葡萄']它只有普通商品 ['Apple']。我可以看到fruitsListB被自動修改我的意思是不是所有的項目['草莓','蔓越莓','橙','蘋果']它只有 ['Strawberry','蔓越莓','Orange'],並取消蘋果產品。
我甚至可以看到fruitsListA被自動修改我的意思是不是所有的項目['蘋果','香蕉','葡萄']它只有普通項目 ['Apple']。
當我使用removeAll和retainAll方法時,複製列表中所做的更改反映在原始列表中。
有沒有其他最好的方法來滿足這種需求?
複製的變量是引用。他們指着原來的名單。因此,如果您在複製的變量中進行更改,他們也會更新原始列表。 –
您需要對列表進行所謂的「深層複製」而不是「淺拷貝」,因爲只有引用包含在您的列表中。 – alexandrum