Java 集合工具探秘:用 Collections.disjoint 高效判断集合是否不相交

编程 > Java (220) 2025-12-11 08:41:50

Collections.disjoint(Collection<?> c1, Collection<?> c2) 是 Java 标准库 java.util.Collections 类中的一个静态工具方法,用于判断两个集合是否不相交(即没有共同元素)。

 

方法签名

public static boolean disjoint(Collection<?> c1, Collection<?> c2)

功能说明

  • 如果两个集合 没有任何公共元素,则返回 true
  • 否则(即至少有一个公共元素),返回 false
  • 如果任一集合为 null,会抛出 NullPointerException

 

使用示例

 

import java.util.*;
public class DisjointExample {
    public static void main(String[] args) {
        List<String> list1 = Arrays.asList("apple", "banana");
        List<String> list2 = Arrays.asList("orange", "grape");
        List<String> list3 = Arrays.asList("banana", "kiwi");
        System.out.println(Collections.disjoint(list1, list2)); // true
        System.out.println(Collections.disjoint(list1, list3)); // false
    }
}

 

性能提示

  • 该方法内部会根据两个集合的大小选择较小的那个转换为 Set(如果还不是 Set),以提高查找效率。
  • 因此,如果其中一个集合已经是 Set(如 HashSet),性能会更好。
  • 最坏时间复杂度约为 O(n × m),但通常优化后接近 O(n + m)。

 

注意事项

  • 元素的“相等”是通过 equals() 方法判断的;
  • 若集合中包含 null 元素,只要两个集合都包含 null,就会被认为有交集(因为 null.equals(null) 虽不调用,但 contains(null) 可以正确识别);
  • 此方法不会修改传入的集合。

 

 


评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
Collections.disjoint是Java 标准库 java.util.Collections 类用于判断两个集合是否不相交(即没有共同元素)。
数组转集合List&lt;String&gtl; list=Arrays.asList("1","2");注意转换出来的List为Arrays内部类集合,与常规的ArrayList有区别,比如常...
Java 8使用多个comparators进行集合分组排序
spring validate 验证List集合演示用类User/Addressimport lombok.Data; import javax.validation.constraint...
使用jQuery判断元素是否在可视区域 $("#app").offset().top; offset().top表示 绝对偏移值,比如说有一个很长的页面,#ap
Java stream 筛选集合中的唯一对象出来演示数据模型@AllArgsConstructor @NoArgsConstructor @Data public class UserInfo ...
在Freemarker中,如果要判断序列中是否包含某个指定的元素,可以使用freemarker的内建函数seq_contains如果判断字符串,可以用contains。他会查找所有一样的字符,例...
JavaScript集合(Array)转树(tree)结构js 原生数组转树形结构 /** * 将list装换成tree * @param {Object} myId 数据主键id * ...
Java编程软件有哪些?常用Java编程软件下载、安装和使用说明
取出属性为集合List&lt;String&gtl; stateNameList = dictEntityList.stream().map(DictEntity::getName).colle...
Python示例,用于查找2个或更多词典之间的公共项,即字典相交项
本文主要说明在spring mvc框架中如何接收前端发过来的集合对象和相关的处理。主要讲解两种方式,form表单提交方式和ajax提交的方式
Java编程之spring boot FastDFS Java client使用,Java编程,FastDFS Java客户端
Java通过sourceafis比对指纹图片的相似度判断指纹,sourceafis,Java指纹图片
根据请求头部ua判断是电脑还是移动平台方法一public boolean isFromMobile(HttpServletRequest request) {        //1. 获得请求U...