Priyanshuシャルマ:
C ++のように、ベクターに新しい要素を追加すると同様の方法: -
myHashMap[myKey].push_back(newElement); //push newElement to the value vector directly
私はJavaで考えることができる唯一の方法は、ハッシュマップからベクトルを取得することです。ベクトルに新しい文字列を追加し、新しいベクターで再びキーを設定します。
myValue = myHashMap.get(myKey);
/**Check if the key exists
**/
//If exists
myValue.add(newElement);
myHashmap.put(myKey, myValue);
以前のように高速である第2のアプローチがあるとされていない場合、他のアプローチがありますか?感謝
user7:
あなたはそれに追加するときにすでにベクトルを変更しているように、マップのベクトルバックを戻す必要はありません。
myHashMap[myKey].push_back(newElement);
によって達成されます
myHashMap.get(myKey)
.add(newElement);
(仮定はmyHashMap.get(myKey)
戻らないヌル)。
あなたは使用することができcomputeIfAbsent
、初めて処理されたキーのためのベクトルオブジェクトを構築するために、Mapインタフェースに。これは、よりエレガントで、必要としない場合はブロックを。
myHashMap.computeIfAbsent(key, k -> new Vector<>())
.add(newElement);
関数は、(k -> new Vector<>()
あれば)のみが実行されmyHashMap
たキーのマッピングを持っていませんkey
。このことについての素晴らしい事は、それがのベクトル値を返しているkey
私たちは、チェーンできるように、add
それにコールを。