“put”是否会覆盖现有值?
哈希表的新手,有一个简单的问题。由于某种原因,谷歌搜索没有得到直接的答案。假设我设置了一个哈希表:<int,String>
myHashtable.put(1,"bird");
myHashtable.put(2,"iguana");
我想把“鸟”改成“鱼”(并保持索引不变)。我可以只做一个简单的,还是我需要删除条目,或者什么?put
哈希表的新手,有一个简单的问题。由于某种原因,谷歌搜索没有得到直接的答案。假设我设置了一个哈希表:<int,String>
myHashtable.put(1,"bird");
myHashtable.put(2,"iguana");
我想把“鸟”改成“鱼”(并保持索引不变)。我可以只做一个简单的,还是我需要删除条目,或者什么?put
是的。
如果已存在到指定键的映射,则将替换(并返回)旧值。请参阅 Hashtable.put()
。
对于多线程环境,我建议使用 ConcurrentHashMap
或其他实现。虽然是同步的,但现在有更复杂的实现可用于并发映射,例如Guava的MapMaker
和CacheBuilder
。ConcurrentMap
Hashtable
还要记住,将具有类型参数,因为不支持基元类型参数。Map
<Integer, String>
嗯,只需要添加一行
,看看发生了什么惊人的事情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