首页 > 解决方案 > 如何在不使用内置库(如 distinct、groupBy(identity)、toSet 等)的情况下从列表中删除重复项

问题描述

我想编写一个 Scala 程序,它将命令行参数作为列表输入并提供不重复的输出列表。我想知道这个的自定义实现而不使用任何库。

输入:4 3 7 2 8 4 2 7 3 输出:4 3 7 2 8

标签: scalalogicscala-collections

解决方案


val x= List(4, 3, 7, 2, 8, 4, 2, 7, 3)
x.foldLeft(List[Int]())((l,v)=> if (l.contains(v)) l else  v :: l)

如果你不能使用包含你可以做另一个折叠

x.foldLeft(List[Int]())((l,v)=> if (l.foldLeft(false)((contains,c)=>if (c==v ) contains | true else contains | false)) l else  v :: l)

推荐阅读