New to hashtables with a simple question. For some reason googling hasn't gotten me a straight answer. Say I've got an <int,String>
hashtable set up:
myHashtable.put(1,"bird");
myHashtable.put(2,"iguana");
and I want to change "bird" to "fish" (and leave the index the same). Can I just do a simple put
, or do I need to delete the entry, or what?
Yes.
If a mapping to the specified key already exists, the old value will be replaced (and returned). See Hashtable.put()
.
For multi-threaded environment, I'd recommend ConcurrentHashMap
or another ConcurrentMap
implementation. Though Hashtable
is synchronized, there are more sophisticated implementations available now for concurrent mapping, such as Guava's MapMaker
and CacheBuilder
.
Also keep in mind the Map
is going to have the type parameters <Integer, String>
since primitive type parameters aren't supported.