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
ConcurrentHashMapor anotherConcurrentMapimplementation. ThoughHashtableis synchronized, there are more sophisticated implementations available now for concurrent mapping, such as Guava’sMapMakerandCacheBuilder.Also keep in mind the
Mapis going to have the type parameters<Integer, String>since primitive type parameters aren’t supported.