Scala - 重复从List中删除

时间:2017-05-15 04:29:00

标签: scala list duplicates

我需要从List中删除重复项。我已经创建了下面的代码,但它会引发错误。我在这里缺少什么?

object RemDupArray {
  def duprmv(lst: List[Int]): List[Int] = { return lst.removeDuplicates }
  def main(args: Array[String]) {
    var xs = List(6, 2, 8, 5, 1, 1, 1)    
    println(xs)
    println(duprmv(xs))
  }
}

3 个答案:

答案 0 :(得分:4)

removeDuplicates不是Scala中List的成员,而是使用distinct

将您的代码更改为:

object RemDupArray {

    def duprmv(lst: List[Int]): List[Int] = lst.distinct

    def main(args: Array[String]) {
        var xs = List(6, 2, 8, 5, 1, 1, 1)    
        println(xs)
        println(duprmv(xs))
    }
}

答案 1 :(得分:3)

您要查找的方法是distinct

return lst.removeDuplicates替换为lst.distinct

答案 2 :(得分:0)

我看到两个简单的解决方案:

  1. 使用List.distinct方法
  2. 在一个集合中转换您的列表,根据定义,它没有重复的元素(请记住,如果相关,您将丢失订单)
  3. 代码:

    def duprmv_1(lst: List[Int]): Set[Int] = lst.distinct
    
    def duprmv_2(lst: List[Int]): Set[Int] = lst.toSet