如何在 List.newBuilder Scala 中避免重复?
How to avoid Duplicates in List.newBuilder Scala?
如何避免此代码重复:
val lastUpdatesBuilder = List.newBuilder[(String, Int)]
val somelist = List("a","a")
for (v <- somelist) {
lastUpdatesBuilder += v -> 1
}
println(lastUpdatesBuilder.result())
结果是 List((a,1), (a,1))
,我希望它只是 List((a,1))。
这就是 distinct
方法的作用。
给你:
object Demo extends App {
val lastUpdatesBuilder = Set.newBuilder[(String, Int)]
val somelist = List("a","a")
for (v <- somelist) {
lastUpdatesBuilder += v -> 1
}
println(lastUpdatesBuilder.result())
}
不过我建议不要使用可变集,你可以这样做。
val ans = somelist.map{ key =>
key -> 1
}.toMap
println(ans)
或者您可以先使用 distinct
删除重复项,然后从中创建地图。
val somelist = List("a","a").distinct
val ans = somelist.map{ key =>
key -> 1
}.toMap
如何避免此代码重复:
val lastUpdatesBuilder = List.newBuilder[(String, Int)]
val somelist = List("a","a")
for (v <- somelist) {
lastUpdatesBuilder += v -> 1
}
println(lastUpdatesBuilder.result())
结果是 List((a,1), (a,1))
,我希望它只是 List((a,1))。
这就是 distinct
方法的作用。
给你:
object Demo extends App {
val lastUpdatesBuilder = Set.newBuilder[(String, Int)]
val somelist = List("a","a")
for (v <- somelist) {
lastUpdatesBuilder += v -> 1
}
println(lastUpdatesBuilder.result())
}
不过我建议不要使用可变集,你可以这样做。
val ans = somelist.map{ key =>
key -> 1
}.toMap
println(ans)
或者您可以先使用 distinct
删除重复项,然后从中创建地图。
val somelist = List("a","a").distinct
val ans = somelist.map{ key =>
key -> 1
}.toMap