元素"/>
Scala 除去List中的重复元素
1, 最简单直接办法是用distinctscala> val l = List(1,2,3,3,4,4,5,5,6,6,6,8,9)
l: List[Int] = List(1, 2, 3, 3, 4, 4, 5, 5, 6, 6, 6, 8, 9)scala> l.distinct
res32: List[Int] = List(1, 2, 3, 4, 5, 6, 8, 9)2, toSetscala> l.toSet.toList
res33: List[Int] = List(5, 1, 6, 9, 2, 3, 8, 4)3, 用foldLeft/*** List去重(泛型实现)* @param list* @tparam T* @return*/def dups[T](list: List[T]) = list.foldLeft(List.empty[T]){(seen, cur) =>if(seen.contains(cur)) (seen) else (seen :+ cur)}//非泛型实现def duplicate[Int](list: List[Int]) = list.foldLeft(List.empty[Int]){(result, cur) => if(result.contains(cur)) result else result :+ cur}def main(args: Array[String]) {//println(countWords("Jack,gates,jack,Lucy:jack,Gates!"))val dup = List(1,1,1,2,3,4,5,5,6,100,101,101,102)val list = List("aa","dd","aa","vv","dd")println(duplicate(dup))println(dups(dup))println(dups(list))}输出:
List(1, 2, 3, 4, 5, 6, 100, 101, 102)
List(1, 2, 3, 4, 5, 6, 100, 101, 102)
List(aa, dd, vv)
原文链接:
更多推荐
Scala 除去List中的重复元素
发布评论