首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查集合中是否包含Scala中其他集合中的元素?

如何检查集合中是否包含Scala中其他集合中的元素?
EN

Stack Overflow用户
提问于 2016-06-18 02:59:12
回答 3查看 12.6K关注 0票数 12

标题说明了一切,找出集合是否包含其他集合的任何元素的最佳实践是什么?

在java中,我会像这样执行它。

代码语言:javascript
复制
CollectionUtils.containsAny(a, b)

使用常见的apache集合实用程序,其中变量a/b是集合。

如何在scala中实现此行为?还是有像上面提到的CollectionUtils这样的库?

我不想使用common-apache库,因为我必须将scala集合转换为java集合。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-06-18 03:06:57

您可以组合使用exists(p: T => Boolean):Booleancontains(elem: A1):Boolean

代码语言:javascript
复制
val a = List(1,2,3,4,5,6,7)
val b = List(11,22,33,44,55,6)

a.exists(b.contains) // true
票数 28
EN

Stack Overflow用户

发布于 2016-06-18 03:05:12

相交

代码语言:javascript
复制
val a = Seq(1,2,3) ; val b = Seq(2,4,5)
a.intersect(b)
res0: Seq[Int] = List(2)

// to include the test:
a.intersect(b).nonEmpty  // credit @Lukasz
票数 18
EN

Stack Overflow用户

发布于 2019-08-21 03:57:21

从标准的Java Collections实用程序中使用disjoint()可以确定两个集合是否包含任何公共成员。如果集合不是不相交的,则它们至少包含一个公共元素。

在内部,Collections.disjoint()会检查任何一个集合是否为Set,并相应地进行优化。

代码语言:javascript
复制
import collection.JavaConverters._

val a = List(1,2,3,4,5,6,7)
val b = List(11,22,33,44,55,6)

!java.util.Collections.disjoint(a.asJava, b.asJava)  // true

尽管这仍然是将Scala集合转换为Java集合。从好的方面来说,不需要额外的apache commons库。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37888614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档