如何检查一个 ArrayList 是否包含另一个 ArrayList 的任何元素?

新手上路,请多包涵

有什么办法可以确定一个 ArrayList 是否包含另一个 ArrayList 的任何元素?

像这样:

 list1.contains(any element of list2)

遍历 list2 的所有元素并逐一检查元素是唯一的方法吗?

原文由 Denman 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 734
2 个回答

虽然效率不高,但它很简洁并且使用了 API:

 if (!new HashSet<T>(list1).retainAll(list2).isEmpty())
    // at least one element is shared

原文由 Bohemian 发布,翻译遵循 CC BY-SA 3.0 许可协议

请考虑以下内容: Java SE 7 文档:java.util.Collections.disjoint

“disjoint”方法以两个集合(例如listA和listB)为参数,如果它们没有共同的元素则返回“true”;因此,如果它们有任何共同的元素,它将返回 false。

只需要一个像这样的简单检查:

 if (!Collections.disjoint(listA, listB))
{
  //List "listA" contains elements included in list "listB"
}

原文由 Fallso 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题