假设我有
val dirty = List("a", "b", "a", "c")
Run Code Online (Sandbox Code Playgroud)
是否有返回"a","b","c"的列表操作
Kip*_*ros 166
看看Seq的ScalaDoc ,
scala> dirty.distinct
res0: List[java.lang.String] = List(a, b, c)
Run Code Online (Sandbox Code Playgroud)
更新.其他人建议使用Set而不是List.没关系,但请注意,默认情况下,Set界面不保留元素顺序.您可能需要使用一组实施,明确不维持秩序,如collection.mutable.LinkedHashSet.
par*_*tic 15
在使用Kitpon的解决方案之前,考虑使用Set而不是a List,它确保每个元素都是唯一的.
由于大部分列表操作(foreach,map,filter,...)是集合和列表相同,改变收集可能是代码非常容易.
小智 7
当然,首先使用Set是正确的方法,但是:
scala> List("a", "b", "a", "c").toSet.toList
res1: List[java.lang.String] = List(a, b, c)
Run Code Online (Sandbox Code Playgroud)
作品.或者就像toSet它支持SEQ Traversable 接口.
| 归档时间: |
|
| 查看次数: |
68913 次 |
| 最近记录: |