Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何检查集合是否包含Scala中其他集合中的任何元素?_Java_Scala_Collections_Apache Commons - Fatal编程技术网

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

Java 如何检查集合是否包含Scala中其他集合中的任何元素?,java,scala,collections,apache-commons,Java,Scala,Collections,Apache Commons,标题说明了一切,找出集合是否包含其他集合的任何元素的最佳实践是什么 在java中,我会这样执行它 CollectionUtils.containsAny(a, b) 使用公共apache集合UTIL,其中变量a/b是集合 如何在scala中实现这种行为?还是有像图书馆一样的收藏 我不想使用公共apache库,因为我必须将scala集合转换为java集合。Intersect val a = Seq(1,2,3) ; val b = Seq(2,4,5) a.intersect(b) res0:

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

在java中,我会这样执行它

CollectionUtils.containsAny(a, b)
使用公共apache集合UTIL,其中变量a/b是集合

如何在scala中实现这种行为?还是有像图书馆一样的收藏


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

Intersect

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

您可以将
存在(p:T=>Boolean):Boolean
包含(elem:A1):Boolean组合使用:

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

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

在内部,
Collections.disjoint()
检查其中一个集合是否为
集合
,并进行相应的优化

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库。

scala集合和java集合之间有什么区别吗?@RobertMoskal是的-事实上scala有两个完全独立的集合层次结构:不可变和可变。不知道为什么它会被否决。这是一个显而易见的答案,它看起来更干净,因为它是一个非空的。不管怎样,我没有投反对票,只是没有投。因为问题实际上是“这两个数组是否有任何相同的元素”,我仍然感觉到明显答案的交叉点。它当然不需要否决票。很明显,仅仅为了检查交叉口是否为空,就必须创建一个交叉口,这不是很浪费吗?我认为这就是为什么人们投票支持另一种解决方案。这是有道理的。。。但我认为这并不能增加可读性