Не "положить" перезаписать существующие значения?


новый для хэш-таблиц с простым вопросом. По какой-то причине гуглинг не дал мне прямого ответа. Скажи, что у меня есть <int,String> настройка хэш-таблицы:

myHashtable.put(1,"bird");
myHashtable.put(2,"iguana");

и я хочу изменить "птица" и "рыба" (и оставить в индексе). Могу ли я просто сделать простой put, или мне нужно удалить запись, или что?

2 57

2 ответа:

да.

если сопоставление с указанным ключом уже существует, старое значение будет заменено (и возвращено). Смотрите Hashtable.put().

для многопоточной среды я бы рекомендовал ConcurrentHashMap или еще ConcurrentMap реализация. Хотя Hashtable синхронизируется, теперь доступны более сложные реализации для параллельного отображения, такие как Guava MapMaker и CacheBuilder.

также имейте в виду 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