Does "put" overwrite existing values?
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.
hmmm ,just need add a linemyHashtable.put(1,"fish");
to see what's amazing happens
see this links: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