哈希表新手,有一个简单的问题。由于某种原因,谷歌搜索没有给我一个直接的答案。假设我有一个<int,String>
哈希表设置:
myHashtable.put(1,"bird");
myHashtable.put(2,"iguana");
我想将“鸟”更改为“鱼”(并保持索引不变)。我可以做一个简单的put
,或者我需要删除该条目,还是什么?
Yes.
如果到指定键的映射已存在,则旧值将被替换(并返回)。看Hashtable.put() http://docs.oracle.com/javase/8/docs/api/java/util/Hashtable.html#put-K-V-.
对于多线程环境,我建议ConcurrentHashMap http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentHashMap.html或其他ConcurrentMap
执行。尽管Hashtable
是同步的,现在有更复杂的实现可用于并发映射,例如 Guava 的MapMaker https://google.github.io/guava/releases/snapshot/api/docs/com/google/common/collect/MapMaker.html and CacheBuilder https://google.github.io/guava/releases/snapshot/api/docs/com/google/common/cache/CacheBuilder.html.
还要记住Map
将具有类型参数<Integer, String>
因为不支持原始类型参数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)