【发布时间】:2010-10-07 00:20:26
【问题描述】:
我有一个包含 D 个唯一 (int, int) 元组的数组 A。
我需要知道数组是否包含 (X, Y) 值。
我是自己实现搜索算法还是 Scala 2.8 中有一个标准函数?我查看了documentation,但在那里找不到任何类似的东西。
【问题讨论】:
-
你搜索过文档吗? scala-lang.org/api/current/scala/…
我有一个包含 D 个唯一 (int, int) 元组的数组 A。
我需要知道数组是否包含 (X, Y) 值。
我是自己实现搜索算法还是 Scala 2.8 中有一个标准函数?我查看了documentation,但在那里找不到任何类似的东西。
【问题讨论】:
这似乎很容易(除非我遗漏了什么):
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。
【讨论】:
我发现了这种好方法
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)
【讨论】: