Сравнение [Ljava.lang.String с массивом [String]

Я знаю, что это может показаться довольно простым вопросом, но я новичок в Scala и не смог найти решение в Интернете.

В основном я конвертирую программу на основе ИИ, и все мои данные находятся в формате JSON в Mongo. Последняя небольшая часть этого — функция, которая запускает симуляцию. Я столкнулся с проблемой сравнения [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

Это всегда возвращает false, даже если массив вернет true, если я это сделаю

     if (g.contains("primera") && g.contains("division"))

Как я могу сравнить два из них, не написав отдельный метод для перебора и проверки (и ужасно неэффективный)

Мне нужно, чтобы массив был динамическим. «primera» и «division» — это просто заполнители для функции, которая проверяет строковый массив с именем «лига», который вводится.

// РЕДАКТИРОВАТЬ Я приблизился к 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. Итак, я сравниваю это с массивом [String]


person Mitchell Ingram    schedule 17.08.2015    source источник


Ответы (1)


Догадаться. Мне нужно было преобразовать оба в набор и использовать subsetOf

Итак, окончательный ответ был:

      if(Set("primera","division").subsetOf(g.toSet))
      //do Stuff
person Mitchell Ingram    schedule 18.08.2015