ava 现在有list<String>A 和list<String>B,现在请将A独有的元素,B独有的元素,以及AB共有的元素分别放入3个新的List<String>中
时间: 2024-02-03 18:13:06 浏览: 64
可以使用 Java 的 Set 来实现这个功能,具体步骤如下:
1. 定义三个新的 List<String>,分别用于存放 A 独有的元素、B 独有的元素、AB 共有的元素。
```java
List<String> listAOnly = new ArrayList<>();
List<String> listBOnly = new ArrayList<>();
List<String> listAB = new ArrayList<>();
```
2. 将 A 和 B 的元素分别放入两个 Set 中。
```java
Set<String> setA = new HashSet<>(A);
Set<String> setB = new HashSet<>(B);
```
3. 遍历 SetA,判断每个元素是否在 SetB 中出现过,如果出现过则将它加入 listAB,否则加入 listAOnly。
```java
for (String a : setA) {
if (setB.contains(a)) {
listAB.add(a);
} else {
listAOnly.add(a);
}
}
```
4. 遍历 SetB,判断每个元素是否已经在 listAB 中出现过,如果没有则加入 listBOnly。
```java
for (String b : setB) {
if (!listAB.contains(b)) {
listBOnly.add(b);
}
}
```
完整代码如下:
```java
List<String> listAOnly = new ArrayList<>();
List<String> listBOnly = new ArrayList<>();
List<String> listAB = new ArrayList<>();
Set<String> setA = new HashSet<>(A);
Set<String> setB = new HashSet<>(B);
for (String a : setA) {
if (setB.contains(a)) {
listAB.add(a);
} else {
listAOnly.add(a);
}
}
for (String b : setB) {
if (!listAB.contains(b)) {
listBOnly.add(b);
}
}
```
其中,A 和 B 是原始的 List<String>。
阅读全文