Collections.disjoint用于判断两个集合是否无交集,若无共同元素则返回true。例如list1与list2无交集返回true,而list1与list3含相同元素”banana”则返回false。该方法无需手动遍历,效率高且适用于所有Collection类型,常用于权限校验、数据去重等场景。

在Java中,Collections.disjoint 方法用于判断两个集合是否有交集。如果两个集合没有共同元素,该方法返回 true,表示它们是“不相交的”;如果有至少一个相同元素,则返回 false。
方法签名与参数说明
public static boolean disjoint(Collection> c1, Collection> c2)c1:第一个集合 c2:第二个集合该方法比较这两个集合中的元素是否完全无重叠。
注意:传入的集合不能为 null,否则会抛出 NullPointerException。
基本使用示例
下面是一个简单的例子,演示如何使用 Collections.disjoint 判断两个List是否有交集:
import java.util.*;public class DisjointExample { public static void main(String[] args) { List list1 = Arrays.asList("apple", "banana", "cherry"); List list2 = Arrays.asList("dog", "cat", "bird"); List list3 = Arrays.asList("banana", "grape"); // 判断list1和list2是否无交集 boolean result1 = Collections.disjoint(list1, list2); System.out.println("list1 和 list2 无交集: " + result1); // 输出 true // 判断list1和list3是否无交集 boolean result2 = Collections.disjoint(list1, list3); System.out.println("list1 和 list3 无交集: " + result2); // 输出 false(因为都有"banana") }}
与其他方式对比的优势
无需手动遍历集合或使用 retainAll 操作,代码更简洁 内部实现做了优化,一旦发现一个公共元素就立即返回 false,效率较高 适用于所有实现了 Collection 接口的类型,如 List、Set、Queue 等
例如,用 retainAll 判断是否有交集需要临时修改集合或复制,而 disjoint 更安全且语义清晰。
Seede AI
AI 驱动的设计工具
586 查看详情
立即学习“Java免费学习笔记(深入)”;
常见应用场景
权限校验:判断用户拥有的角色与受限角色列表是否无交集 数据去重处理:合并前确认两个数据源是否完全独立 测试断言:验证某些预期不重叠的数据集确实没有重复项
基本上就这些。Collections.disjoint 是一个简单但实用的工具方法,适合快速判断两个集合是否完全没有公共元素,避免重复编码逻辑。只要注意传参非null,就能安全使用。
以上就是在Java中如何使用Collections.disjoint判断集合是否无交集_集合无交集判断方法说明的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1070022.html
微信扫一扫
支付宝扫一扫