java 两个list<String>取交集
时间: 2023-09-20 07:12:04 浏览: 33
可以使用Java 8的Stream API来实现两个List<String>的交集操作,示例如下:
```java
List<String> list1 = Arrays.asList("A", "B", "C");
List<String> list2 = Arrays.asList("B", "C", "D");
List<String> intersection = list1.stream()
.filter(list2::contains)
.collect(Collectors.toList());
System.out.println(intersection); // 输出 [B, C]
```
首先将两个List<String>分别用Arrays.asList()转换为List,然后使用Stream API的filter()方法将list1中包含在list2中的元素筛选出来,最后使用collect()方法将筛选出来的元素收集到一个新的List中。
相关问题
两个List<String>的集合 求交集
我们可以使用Java 8中的Stream API来实现两个List<String>的集合求交集。具体实现如下:
```java
List<String> list1 = Arrays.asList("a", "b", "c");
List<String> list2 = Arrays.asList("b", "c", "d");
List<String> intersection = list1.stream()
.filter(list2::contains)
.collect(Collectors.toList());
System.out.println(intersection); // 输出 [b, c]
```
首先,我们将两个List<String>赋值给list1和list2。然后,我们使用list1的stream()方法创建一个Stream对象。接着,我们使用filter()方法过滤出在list2中也包含的元素。最后,我们使用collect()方法将过滤出来的元素收集到一个新的List<String>对象中,并将其赋值给intersection变量。最后,我们输出intersection即可得到两个List<String>的集合的交集。
Java 现在有list<String>A 和list<String>B,把A集合独有的元素放入List<String>AA,B集合独有的元素放入List<BB>BB,AB共有的放入List<AB>AB
可以使用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()方法,它们分别可以去除两个集合的交集和差集。