如何附加到HashMap中的LinkedList?

如何附加到HashMap中的LinkedList?,list,scala,map,List,Scala,Map,给出了以下构造 import scala.collection.mutable.HashMap import scala.collection.mutable.LinkedList private var log = new HashMap[String, LinkedList[String]] 如何附加到链接列表中 如果我使用log.get(“some key”).get:+some\u string或log.get(“some key”).get-append-LinkedList(so

给出了以下构造

import scala.collection.mutable.HashMap 
import scala.collection.mutable.LinkedList
private var log = new HashMap[String, LinkedList[String]]
如何附加到链接列表中

如果我使用
log.get(“some key”).get:+some\u string
log.get(“some key”).get-append-LinkedList(some\u string)
则不会追加列表,但会返回包含该值的新列表。HashMap是否只返回关联值的副本而不是该值的引用


离题:声誉很高的人能否将scala添加为支持标题的标记?它应该是,因为它是一种相当有名的编程语言

在尝试了很多次之后回答自己:它使用
列表缓冲区而不是
链接列表来工作。使用您的第二个解决方案,它对我有效:

>scala
Welcome to Scala version 2.10.0 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_06).
Type in expressions to have them evaluated.
Type :help for more information.

scala> import scala.collection.mutable.HashMap
import scala.collection.mutable.HashMap

scala> import scala.collection.mutable.LinkedList
import scala.collection.mutable.LinkedList

scala> var log = new HashMap[String, LinkedList[String]]
log: scala.collection.mutable.HashMap[String,scala.collection.mutable.LinkedList[String]] = Map()

scala> log += ("abc" -> LinkedList("apple", "banana", "coconut"))
res0: scala.collection.mutable.HashMap[String,scala.collection.mutable.LinkedList[String]] = Map(abc
 -> LinkedList(apple, banana, coconut))

scala> log.get("abc").get append LinkedList("durian")
res1: scala.collection.mutable.LinkedList[String] = LinkedList(apple, banana, coconut, durian)

scala> log("abc")
res2: scala.collection.mutable.LinkedList[String] = LinkedList(apple, banana, coconut, durian)
不过,比
get
更好的是

log.get("abc") foreach (_ append LinkedList("elderberry"))

如果找不到值,它不会抛出异常。

使用
append的版本有效-再次检查。(但最好不要在
选项上使用
get
——而是使用
map
)我已经检查了很多次了。也许有版本差异?我使用的Scala 2.10.1
LinkedList
实际上并不是一个常用的集合。最好是完全不可变的,并使用像
immutable.Map
Vector
这样的集合。然后更新
日志的引用。这些不可变集合实际上非常有效,因为它们可以重用现有结构。