加入一个list中包含1,2,3,另一个list2中包含2,4,用Java如何判断只要两个集合有交集就为true,没有就为false
时间: 2024-10-11 14:05:36 浏览: 15
Java判断2个List集合是否相等(不考虑元素的顺序)
5星 · 资源好评率100%
在Java中,可以使用`List`的`containsAll()`方法来检查一个列表是否包含另一个列表的所有元素,或者使用`retainAll()`方法来保留两列表共有的元素。如果你想判断两个列表是否有交集,而不是完全相等,你可以这样做:
```java
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3));
List<Integer> list2 = new ArrayList<>(Arrays.asList(2, 4));
// 判断是否有交集
boolean hasIntersection = !list1.stream()
.filter(list2::contains)
.noneMatch(Boolean::false);
System.out.println("是否有交集:" + hasIntersection);
}
}
```
在这个例子中,我们首先创建了两个列表`list1`和`list2`,然后使用Java 8的流(Stream)API,通过`filter`方法过滤出`list1`中的元素,如果这些元素在`list2`中存在,则`contains`方法会返回`true`。`noneMatch`方法则用于检查所有元素都不满足给定的条件(这里是`Boolean::false`,即非真),如果有交集,就会有一个元素满足`list2.contains`的条件,因此`noneMatch`的结果将是`false`。
阅读全文