【问题标题】:How to check that an array contains a particular value in Scala 2.8?如何检查数组是否包含 Scala 2.8 中的特定值?
【发布时间】:2010-10-07 00:20:26
【问题描述】:

我有一个包含 D 个唯一 (int, int) 元组的数组 A。

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

我是自己实现搜索算法还是 Scala 2.8 中有一个标准函数?我查看了documentation,但在那里找不到任何类似的东西。

【问题讨论】:

标签: arrays scala


【解决方案1】:

这似乎很容易(除非我遗漏了什么):

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

【讨论】:

  • 如果 Eclipse 可以通过隐式转换找到可用的方法,那就太好了。我最终来到这里是因为它没有出现在 ctrl+space 列表中,而且我很惊讶这不是标准方法。
【解决方案2】:

我发现了这种好方法

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)

【讨论】:

    猜你喜欢
    • 2020-07-15
    • 2015-06-24
    • 2016-02-04
    • 1970-01-01
    • 1970-01-01
    • 2012-02-11
    • 1970-01-01
    • 1970-01-01
    • 2020-05-24
    相关资源
    最近更新 更多