[解決済み] JavaでHashMapのキーと値を反転させる
2023-06-27 03:13:19
質問
簡単な質問です。 私は、キーと値を逆にしたい単純なHashMapを持っています。
HashMap<Character, String> myHashMap = new HashMap<Character, String>();
myHashMap.put('a', "test one");
myHashMap.put('b', "test two");
で、新しいHashMapを作り、そこに反対のものを入れたいと思います。
HashMap<String, Character> reversedHashMap = new HashMap<String, Character>();
e.g. Keys "test one" & "test two" and values 'a' & 'b'.
どのように解決するのですか?
<ブロッククオートどれも個性的ですね。
値が一意であることが確かであれば、古いマップのエントリを繰り返し処理することができます。
Map<String, Character> myNewHashMap = new HashMap<>();
for(Map.Entry<Character, String> entry : myHashMap.entrySet()){
myNewHashMap.put(entry.getValue(), entry.getKey());
}
また、以下のようなBi-Directionalマップを使用することもできます。
グアバ
が提供する
inverse()
メソッドを使用します。
BiMap<Character, String> myBiMap = HashBiMap.create();
myBiMap.put('a', "test one");
myBiMap.put('b', "test two");
BiMap<String, Character> myBiMapInversed = myBiMap.inverse();
として ジャバ・エイト が抜けているので、この方法でも可能です。
Map<String, Integer> map = new HashMap<>();
map.put("a",1);
map.put("b",2);
Map<Integer, String> mapInversed =
map.entrySet()
.stream()
.collect(Collectors.toMap(Map.Entry::getValue, Map.Entry::getKey))
最後に、私の投稿を プロトンパックライブラリ このライブラリには Stream API 用のユーティリティメソッドが含まれています。これを使うと、次のようにできます。
Map<Character, String> mapInversed = MapStream.of(map).inverseMapping().collect();
関連
-
名前 'XXX' を持つ Bean の作成に失敗しました。自動依存関係の注入に失敗しました 解決方法
-
Junitのユニットテストエラー
-
Web Project JavaでPropertiesファイルを読み込むと、「指定されたファイルがシステムで見つかりません」というソリューションが表示されます。
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] ハッシュマップのキーを指定して、値を更新するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
java.sql.SQLException: executeQuery()でデータ操作文を発行できません。
-
Solve モジュールのビルドに失敗しました。Error: ENOENT: no such file or directory エラー
-
スレッド "main" での例外 java.lang.ArrayIndexOutOfBoundsException:5 エラー
-
Javaジェネリックを1つの記事で
-
keytool error: java.io.FileNotFoundException: cacerts (アクセス拒否されました。)
-
X11 DISPLAY変数が設定されていない」問題の解決方法
-
API の戻り値を処理するために ResponseEntity を使用する
-
Javaがエラーで実行される、選択が起動できない、最近起動したものがない
-
テストが空であるかどうかを判断するためのオプションの処理
-
IDEAError:javaの依存性エラー。Annotation processing is not supported for module cycles...(アノテーション処理はモジュールサイクルではサポートされていません。