Предположим, у меня есть следующие переменные:
val m = HashMap( ("1", "one"), ("2", "two"), ("3", "three") )
val l = List("1", "2")
Я хотел бы извлечь список List («один», «два»), который соответствует значениям для каждого ключа в списке, представленном на карте.
Это мое решение, работает как шарм. Тем не менее, я хотел бы знать, изобретаю ли я велосипед заново и есть ли какое-то идиоматическое решение для того, что я собираюсь сделать:
class Mapper[T,V](val map: HashMap[T,V]) extends PartialFunction[T, V]{
override def isDefinedAt(x: T): Boolean = map.contains(x)
override def apply(x: T): V = map.get(x) match {
case Some(v) => v
}
}
val collected = l collect (new Mapper(map) )
Список («один», «два»)