比较[Ljava.lang.String与Array [String]

时间:2015-08-17 23:26:10

标签: scala casbah

我知道这似乎是一个非常简单的问题,但我是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]

进行比较

1 个答案:

答案 0 :(得分:0)

想出来。我需要将两者都转换为Set并使用subsetOf

所以最后的答案是:

      if(Set("primera","division").subsetOf(g.toSet))
      //do Stuff