Java 现在有list<String>A 和list<String>B,把A集合独有的元素放入List<String>AA,B集合独有的元素放入List<BB>BB,AB共有的放入List<AB>AB
时间: 2023-11-11 07:10:40 浏览: 44
可以使用Java自带的集合操作来实现这个需求,具体代码如下:
```java
List<String> A = Arrays.asList("a", "b", "c");
List<String> B = Arrays.asList("b", "c", "d");
List<String> AA = new ArrayList<>(A);
AA.removeAll(B);
List<String> BB = new ArrayList<>(B);
BB.removeAll(A);
List<String> AB = new ArrayList<>(A);
AB.retainAll(B);
System.out.println("AA: " + AA); // 输出:AA: [a]
System.out.println("BB: " + BB); // 输出:BB: [d]
System.out.println("AB: " + AB); // 输出:AB: [b, c]
```
这里用到了List的removeAll()和retainAll()方法,它们分别可以去除两个集合的交集和差集。
相关问题
java 现在有list<String>A 和list<String>B,现在请写一个方法,把A集合独有的元素放入AA,B集合独有的元素放入BB,AB共有的放入AB
可以使用 Java 中的 Set 集合来实现这个功能。具体实现代码如下:
```java
public static void splitList(List<String> A, List<String> B, List<String> AA, List<String> BB, List<String> AB) {
Set<String> setA = new HashSet<>(A);
Set<String> setB = new HashSet<>(B);
for (String str : setA) {
if (!setB.contains(str)) {
AA.add(str);
} else {
AB.add(str);
}
}
for (String str : setB) {
if (!setA.contains(str)) {
BB.add(str);
}
}
}
```
调用该方法:
```java
List<String> A = Arrays.asList("a", "b", "c", "d");
List<String> B = Arrays.asList("c", "d", "e", "f");
List<String> AA = new ArrayList<>();
List<String> BB = new ArrayList<>();
List<String> AB = new ArrayList<>();
splitList(A, B, AA, BB, AB);
System.out.println("A 独有元素:" + AA);
System.out.println("B 独有元素:" + BB);
System.out.println("AB 共有元素:" + AB);
```
输出结果:
```
A 独有元素:[a, b]
B 独有元素:[e, f]
AB 共有元素:[c, d]
```
List <string>
List <string> 是一个包含字符串元素的列表。要将一个 String 数组转换为 List <string>,可以使用 Arrays.asList() 方法。例如,如果有一个 String 数组 strs,可以使用以下代码将其转换为 List <string>:
String[] strs = {"aa","bb","cc"};
List<String> list = Arrays.asList(strs);
如果要将一个 List <string> 转换为 String 数组,可以使用 toArray() 方法。例如,如果有一个 List <string> list,可以使用以下代码将其转换为 String 数组:
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
String[] str = list.toArray(new String[list.size()]);