scala - 如何在不使用内置库(如 distinct、groupBy(identity)、toSet 等)的情况下从列表中删除重复项
问题描述
我想编写一个 Scala 程序,它将命令行参数作为列表输入并提供不重复的输出列表。我想知道这个的自定义实现而不使用任何库。
输入:4 3 7 2 8 4 2 7 3 输出:4 3 7 2 8
解决方案
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)
推荐阅读
- vba - Excel VBA 逻辑不起作用
- django - 模型上的 def __str__
- python-3.x - 如何获取机器人头像链接
- html - 怎么做
- html - “索引,关注”或“关注”有什么区别
- vb.net - 操作必须使用 myapp.exe 在 vb.net 中使用可更新查询
- google-app-engine - 使用 Google App Engine 作为后端的 Google Cloud Load Balancer 上的 GeoDNS 路由
- php - Web报表错误未知原因
- functional-programming - Coq:存在于 Set 中的非列表数据结构?
- spring-boot - 如何为每个文件写入和控制台写入指定特定的记录器级别