java 获取两个list中不相同的元素
时间: 2023-11-25 17:06:55 浏览: 153
java获取list中两元素时间差
在 Java 中,可以使用 Collection 类的 `retainAll()` 和 `removeAll()` 方法获取两个 List 中不相同的元素。
方法一:使用 `retainAll()` 方法获取两个 List 中相同的元素
```java
List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> list2 = Arrays.asList(3, 4, 5, 6, 7);
List<Integer> common = new ArrayList<>(list1);
common.retainAll(list2);
System.out.println(common); // 输出 [3, 4, 5]
```
方法二:使用 `removeAll()` 方法获取两个 List 中不相同的元素
```java
List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> list2 = Arrays.asList(3, 4, 5, 6, 7);
List<Integer> difference = new ArrayList<>(list1);
difference.removeAll(list2);
difference.addAll(list2); // 将 list2 中不在 list1 中的元素加入 difference
System.out.println(difference); // 输出 [1, 2, 6, 7]
```
以上代码中,`retainAll()` 方法会将 `list1` 中与 `list2` 相同的元素保留下来,存储到 `common` List 中。而 `removeAll()` 方法会将 `list1` 中与 `list2` 相同的元素删除,存储到 `difference` List 中。需要注意的是,如果想要获取两个 List 中不相同的元素,需要将 `list2` 中不在 `list1` 中的元素再添加到 `difference` List 中。
阅读全文