如何在 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