java两个list求交集
时间: 2023-11-07 22:10:02 浏览: 92
Java中可以使用"retainAll"方法来求两个list的交集。
示例代码:
```
List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3, 4));
List<Integer> list2 = new ArrayList<>(Arrays.asList(3, 4, 5, 6));
list1.retainAll(list2);
System.out.println(list1); // 输出 [3, 4]
```
"retainAll"方法会在第一个list中保留与第二个list中的元素相同的元素,并删除第一个list中其他的元素。
注意:这个方法会改变原来的list,如果需要保留原来的list,可以先复制一份再使用。
相关问题
java两个list取交集
你可以使用`retainAll()`方法来获取两个Java List的交集。这个方法会修改调用它的List,只保留与指定集合相同的元素。下面是一个示例代码:
```java
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<>();
list1.add(1);
list1.add(2);
list1.add(3);
List<Integer> list2 = new ArrayList<>();
list2.add(2);
list2.add(3);
list2.add(4);
list1.retainAll(list2);
System.out.println(list1); // 输出 [2, 3]
}
}
```
在上述代码中,我们创建了两个List:`list1`和`list2`,它们分别包含整数元素。然后,我们调用`list1.retainAll(list2)`,这会保留`list1`中与`list2`相同的元素,即交集。最后,我们打印输出`list1`,得到了交集 `[2, 3]`。
java 两个list 的交集
可以使用Java 8的stream API来实现两个List的交集,具体实现如下:
```
List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> list2 = Arrays.asList(3, 4, 5, 6, 7);
List<Integer> intersection = list1.stream().filter(list2::contains).collect(Collectors.toList());
```
这段代码将会返回两个List的交集,也就是包含3、4、5的List。
阅读全文