如何在Scala 2.8中检查数组是否包含特定值?

Iva*_*van 24 arrays scala

我有一个D唯一(int,int)元组的数组A.

我需要知道数组是否包含(X,Y)值.

我是自己实现搜索算法还是在Scala 2.8中有一个标准函数?我看过文档,但在那里找不到任何东西.

huy*_*hjl 42

这似乎很容易(除非我遗漏了一些东西):

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
Run Code Online (Sandbox Code Playgroud)

我认为您正在寻找的api调用是在ArrayLike中.


Sug*_*lai 5

我找到了这种不错的做法

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)
Run Code Online (Sandbox Code Playgroud)