In Scala how do I remove duplicates from a list?

前端 未结 8 609
旧巷少年郎
旧巷少年郎 2020-12-13 22:57

Suppose I have

val dirty = List(\"a\", \"b\", \"a\", \"c\")

Is there a list operation that returns \"a\", \"b\", \"c\"

8条回答
  •  天命终不由人
    2020-12-13 23:26

    The algorithmic way...

    def dedupe(str: String): String = {
      val words = { str split " " }.toList
    
      val unique = words.foldLeft[List[String]] (Nil) {
        (l, s) => {
          val test = l find { _.toLowerCase == s.toLowerCase } 
          if (test == None) s :: l else l
        }
      }.reverse
    
      unique mkString " "
    }
    

提交回复
热议问题