我认为可以按照以下方式完成。
然而,上述代码输出了难以理解的值1。我希望...
在背后做类似以下操作的事情。
val hash = new HashMap[String, ListBuffer[Int]].withDefaultValue(ListBuffer())
hash("A").append(1)
hash("B").append(2)
println(hash("B").head)
然而,上述代码输出了难以理解的值1。我希望...
hash("B").append(2)
在背后做类似以下操作的事情。
if (!hash.contains("B")) hash.put("B", ListBuffer())
apply
方法,但很快就会变得很丑陋。在我看来,最好使用一个单独的方法。 - Rex KerrHashMap[A,ListBuffer[B]]
,添加一个方法def append[A,B](key: A, value: B) = getOrElseUpdate(key)(new LB...).append(value)
。 - ziggystar