【发布时间】:2018-09-13 21:45:28
【问题描述】:
我有一张地图,目前以Seq[(String, Option[T])] 之类的序列表示。我不关心地图中的None 值,因为我想做一些操作,比如对它们进行排序,这样我就可以确定要使用哪个键。我可以这样做:
val mapping: Seq[(String, Option[Foo])]
mapping.filter(_._2.isDefined)
.sortBy(_._2.get.someInt)
.headOption.map(_._1)
...但是必须有更好的方法来写这个。特别是,get 让我感到不舒服,因为它的值仍然是 Option[Foo] 类型,尽管其中应该没有 None 值。
有没有更好的办法?
【问题讨论】:
-
似乎您正在对整个列表进行排序以仅获得一个元素。有
maxBy。 -
@AndreyTyukin:我愿意接受挑战这个问题的答案。
标签: scala