我知道这似乎是一个非常简单的问题,但我是Scala的新手,无法在线找到解决方案。
基本上我正在转换一个基于AI的程序,我的所有数据都是在Mongo的JSON格式。最后一点是运行模拟的函数。我遇到了将[Ljava.lang.String与基本数组[String]进行比较的问题。
//temporary way to store variable
var g = row.as[MongoDBObject]("country").as[BasicDBList]("league").toArray(new Array[String](row.as[MongoDBObject]("country").as[BasicDBList]("league").length))
if (g.contains(Array("primera","division")))
//Do stuff
如果我执行
,即使数组返回true,它也总是返回false if (g.contains("primera") && g.contains("division"))
如何在不编写单独的方法来循环检查(并且效率极低)的情况下比较其中的两个
我需要数组是动态的。 “primera”和“division”只是函数的占位符,用于检查名为league的字符串数组。
// EDIT
我与Array[String]("primera","division").exists(g.contains)
越来越近了,但是匹配“primera”或“division”而不是两者。
API是: http://mongodb.github.io/casbah/api/#com.mongodb.casbah.package
当我调用g.getClass时,它返回类[Ljava.lang.String。所以我将它与Array [String]
进行比较答案 0 :(得分:0)
想出来。我需要将两者都转换为Set并使用subsetOf
所以最后的答案是:
if(Set("primera","division").subsetOf(g.toSet))
//do Stuff