取出list两个集合中的差集java代码
时间: 2023-05-28 13:01:26 浏览: 122
假设有两个集合A和B,可以使用Java的Collection类的removeAll方法来计算它们的差集:
```java
List<Integer> A = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
List<Integer> B = new ArrayList<>(Arrays.asList(1, 3, 5, 7, 9));
A.removeAll(B);
System.out.println(A); // 输出 [2, 4]
```
上述代码中,使用ArrayList类的构造方法将一组数字转为列表形式存储在集合A和集合B中。然后使用A.removeAll(B)方法,从集合A中移除集合B中也存在的元素,最终输出A中剩余的元素。在本例中,集合A和B的差集为 [2, 4]。
相关问题
java取出俩个集合中不同的内容
在Java中,你可以使用集合接口提供的交集(intersection)操作来获取两个集合中不同的元素。如果你有两个`Set`类型的集合(因为`Set`不允许有重复元素),可以使用`difference()`方法或者创建一个新的`HashSet`然后添加两个集合的所有元素再取差集。对于List类型的集合,通常需要先转换成Set再操作。
以下是两种常见的方式:
1. 对于Set集合:
```java
Set<String> setA = ...;
Set<String> setB = ...;
// 使用`difference()`方法获取不同元素
Set<String> differentElements = new HashSet<>(setA);
differentElements.removeAll(setB);
// 或者直接创建新Set并添加所有元素后再取差集
differentElements = new HashSet<>(setA.addAll(setB));
differentElements.removeAll(setA); // 现在differntElements就是setA中独有的
```
2. 对于List集合:
```java
List<String> listA = ...;
List<String> listB = ...;
// 先将List转为Set
Set<String> setA = new HashSet<>(listA);
Set<String> setB = new HashSet<>(listB);
// 获取不同元素
List<String> differentElements = new ArrayList<>(setA.difference(setB)); // 注意这是HashSet的difference方法
```
阅读全文