【发布时间】:2014-01-27 17:42:53
【问题描述】:
我确信有一种优雅/有趣的方式来做到这一点, 但我只能想到一个或多或少复杂的递归解决方案。
改写: 是否有任何标准库(集合)方法或它们的简单组合来获取列表的第一个不同元素?
scala> val s = Seq(3, 5, 4, 1, 5, 7, 1, 2)
s: Seq[Int] = List(3, 5, 4, 1, 5, 7, 1, 2)
scala> s.takeWhileDistinct //Would return Seq(3,5,4,1), it should preserve the original order and ignore posterior occurrences of distinct values like 7 and 2.
【问题讨论】:
-
@Vidya,添加了更具体的示例。
-
标准库可以有一个适用于目前看到的所有元素的 takeWhile。但是,实际的 takeWhile 仅用于测试目前唯一的元素。
-
@flavian:问题已得到纠正。这个例子是对的。
标签: scala collections