第十章 Scala 容器基础(二十一):从集合中提取不重复的元素
Problem 你有一个集合,内部有很多重复元素,你想要把这些重复的元素只保留一份。 Solution 使用Distinct方法: scala> val x = Vector(1, 1, 2, 3, 3, 4) x: scala.collection.immutable.Vector[Int] = Vector(1, 1, 2, 3, 3, 4) scala> val y = x.distinct y: scala.collection.immutable.Vector[Int] = Vector(1, 2, 3, 4) 这个distinct方法返回一个新的集合,重复元素只保留一份。记得使用一个新的变量来指向这个新的集合,无论你使用的是mutable集合还是immutable集合。 如果你突然需要一个set,那么直接吧你的集合转化成为一个set也是去掉重复元素的方式: scala> val s = x.toSet s: scala.collection.immutable.Set[Int] = Set(1, 2, 3, 4) 因为Set对于一样的元素只能保存一份,所以把Array,List,Vector或者其他的集合转化成Set可以去掉重复元素。实际上这就是distinct方法的工作远离。Distinct方法的源代码显示了他就是实用了一个mutable.HashSet的实例。