是否“覆盖”现有值?

新的哈希表一个简单的问题。 由于某种原因,谷歌search没有得到我一个直接的答案。 假设我已经设置了一个<int,String>哈希表:

 myHashtable.put(1,"bird"); myHashtable.put(2,"iguana"); 

我想把“鸟”换成“鱼”(并且保持指数相同)。 我可以做一个简单的put ,还是我需要删除条目,或者什么?

是。

如果已经存在到指定键的映射,则旧值将被replace(并返回)。 看到Hashtable.put()

对于multithreading环境,我build议使用ConcurrentHashMap或其他ConcurrentMap实现。 虽然Hashtable是同步的,但现在有更复杂的实现可用于并发映射,例如Guava的MapMakerCacheBuilder

另外请记住<Integer, String>由于原始types参数不受支持<Integer, String>因此Map将具有<Integer, String>types参数。

嗯,只需要添加一行
myHashtable.put(1,"fish");
看看有什么惊人的事情发生

看到这个链接: http : //docs.oracle.com/javase/6/docs/api/java/util/Hashtable.html#put(K,V)

 Returns: the previous value of the specified key in this hashtable, or null if it did not have one