web-dev-qa-db-ja.com

Scala 2.8)に配列に特定の値が含まれていることを確認する方法

配列AのDの一意の(int、int)タプルがあります。

配列に(X、Y)値が含まれているかどうかを知る必要があります。

私は自分で検索アルゴリズムを実装するのですか、またはScala 2.8にこれの標準関数がありますか? documentation を確認しましたが、そのようなものは見つかりませんでしたそこ。

24
Ivan

それは簡単に思えます(私が何かを逃していない限り):

scala> val A = Array((1,2),(3,4))
A: Array[(Int, Int)] = Array((1,2), (3,4))

scala> A contains (1,2)
res0: Boolean = true

scala> A contains (5,6)
res1: Boolean = false

あなたが探しているAPI呼び出しは ArrayLike にあると思います。

42
huynhjl

私はこの素晴らしい方法を見つけました

scala> var personArray = Array(("Alice", 1), ("Bob", 2), ("Carol", 3))
personArray: Array[(String, Int)] = Array((Alice,1), (Bob,2), (Carol,3))

scala> personArray.find(_ == ("Alice", 1))
res25: Option[(String, Int)] = Some((Alice,1))

scala> personArray.find(_ == ("Alic", 1))
res26: Option[(String, Int)] = None

scala> personArray.find(_ == ("Alic", 1)).getOrElse(("David", 1))
res27: (String, Int) = (David,1)