说我有以下内容:
lazy val store: Seq[Person] = Seq(
Person(1, "Bob"),
Person(2, "Jim")
)
其中Person
的定义如下:
case Class Person(
id: Long
name: String)
如何通过ID从store
检索人物?
答案 0 :(得分:6)
您可以find
使用谓词来比较该人的ID:
val p = store.find(_.id == someId)
这将为您提供Option[Person]
,其中第一个元素与谓词匹配,如果不存在具有此类ID的人,则为无。
答案 1 :(得分:1)
这不是一个直接的答案,而是更多关于补充@Alexis答案的建议。
考虑对您的商店使用Map[Int, Person]
,如果商店变大,这将改善Person
的查询时间。
e.g:
def main(args: Array[String]) = {
lazy val store: Map[Int, Person] = Map(
1 -> Person(1, "Bob"),
2 -> Person(2, "Jim")
)
val someId = 1
val result: Option[Person] = store.get(someId)