是否“覆盖”现有值?
新的哈希表一个简单的问题。 由于某种原因,谷歌search没有得到我一个直接的答案。 假设我已经设置了一个<int,String>
哈希表:
myHashtable.put(1,"bird"); myHashtable.put(2,"iguana");
我想把“鸟”换成“鱼”(并且保持指数相同)。 我可以做一个简单的put
,还是我需要删除条目,或者什么?
是。
如果已经存在到指定键的映射,则旧值将被replace(并返回)。 看到Hashtable.put()
。
对于multithreading环境,我build议使用ConcurrentHashMap
或其他ConcurrentMap
实现。 虽然Hashtable
是同步的,但现在有更复杂的实现可用于并发映射,例如Guava的MapMaker
和CacheBuilder
。
另外请记住<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