gpt4 book ai didi

scala - 我需要更改什么才能使 Scala 2.13 MultiDict 用作​​ 2.12 的 MultiMap 的直接替代品?

转载 作者:行者123 更新时间:2023-12-05 06:10:50 24 4
gpt4 key购买 nike

对于 < 2.13 的 Scala 代码,我使用此处定义的 MultiMap MultiMap .使用在那里找到的示例代码,我希望通过简单地替换代码来更新它:

val mm = new HashMap[Int, Set[String]] with MultiMap[Int, String]

val mm2 = new HashMap[Int, Set[String]] with MultiDict[Int, String]

但是我得到了以下错误:

illegal inheritance; 
<$anon: Int => scala.collection.mutable.Set[String]
with scala.collection.MultiDict[Int,String]> inherits different type instances of trait Iterable:
Iterable[(Int, String)] and Iterable[(Int, scala.collection.mutable.Set[String])]

最佳答案

你要做的是:

  1. 实例化一个可变的MultiDict[K, V]
  2. 根据需要通过继承自 Growable[(K, V)]Shrinkable[(K, V)] 特征的方法从该集合中添加和删除项目.
  3. 使用sets当您需要以 Map[K, Set[V]] 的形式访问集合时实例上的方法。

在下面的示例中,md1md2 都是可变的 MultiDict[Int, String] 对象,它们在代码块:

locally {
import scala.collection.mutable

val md1 = mutable.MultiDict.empty[Int, String]
md1.addOne(1 -> "one")
md1.addOne(1 -> "uno")
md1.addOne(2 -> "two")
md1.addOne(2 -> "dos")

val md2 = mutable.MultiDict.from[Int, String](
Seq(1 -> "one", 1 -> "uno", 2 -> "two", 2 -> "dos")
)
}

关于scala - 我需要更改什么才能使 Scala 2.13 MultiDict 用作​​ 2.12 的 MultiMap 的直接替代品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64229615/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com