1. ホーム
  2. java

[解決済み] put "は既存の値を上書きしますか?

2023-06-03 18:08:38

質問

ハッシュテーブルの初心者で素朴な疑問があります。 なぜかググっても明確な答えが出てきません。 例えば、私が <int,String> ハッシュテーブルがセットアップされています。

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

で、"bird" を "fish" に変更したいのですが(indexはそのままで)。 単純に put それともエントリを削除する必要があるのでしょうか、それとも何でしょうか?

どのように解決するのですか?

はい、そうです。

指定されたキーへのマッピングが既に存在する場合、古い値が置き換えられます(そして、返されます)。参照 Hashtable.put() .

マルチスレッド環境なら ConcurrentHashMap または別の ConcurrentMap の実装が必要です。しかし Hashtable は同期化されていますが、現在ではより洗練された実装があり、Guava の MapMaker CacheBuilder .

また Map は型パラメーターを持つことになります。 <Integer, String> はプリミティブな型パラメータはサポートされていないので