[解決済み] Java Hashmap。値からキーを取得する方法は?
質問
という値がある場合
"foo"
であり、かつ
HashMap<String> ftw
に対して
ftw.containsValue("foo")
を返します。
true
対応するキーを取得するにはどうすればよいのでしょうか?ハッシュマップをループしなければならないのでしょうか?それを行うための最良の方法は何ですか?
どのように解決するのですか?
を選択した場合 コモンズ・コレクションズ・ライブラリ 標準的なJava Collectionsフレームワークの代わりに、簡単にこれを実現することができます。
は
BidiMap
コレクション・ライブラリのインターフェイスは双方向マップであり、通常のマップのようにキーと値を対応付けるだけでなく、値をキーに対応付けることもでき、双方向のルックアップを行うことができます。ある値に対するキーの取得をサポートするのは
getKey()
メソッドを使用します。
つまり、キーと値が1対1で対応するデータセットでない限り、二値マップを使用することはできません。
Java Collections APIに依存する場合、マップに値を挿入する時点で、キーと値の1対1の関係を確保する必要があります。これは、言うは易く行うは難しです。
それが確実にできるようになったら
entrySet()
メソッドを使用して、Mapのエントリ(マッピング)のセットを取得します。を型とする集合を得ると
Map.Entry
を比較しながら、各項目を反復処理します。
保存値
を期待値と比較し
対応するキー
.
による双子地図に対応 ジェネリックス は グーグル グアバ とリファクタリングされた コモンズ・コレクション ライブラリ(後者は Apache プロジェクトではありません)。Apache Commons Collectionsのジェネリックサポートの欠落を指摘してくれたEskoに感謝します。ジェネリックでコレクションを使うことで、より保守性の高いコードになります。
以来 バージョン4.0 公式の Apache Commons Collections™ ライブラリでは ジェネリックス .
をご覧ください。
概要
のページで、"
org.apache.commons.collections4.bidimap
の利用可能な実装の一覧は、" パッケージをご覧ください。
BidiMap
,
OrderedBidiMap
そして
SortedBidiMap
インタフェースがJavaをサポートするようになりました。
ジェネリックス
.
関連
-
Javaクラスローダーにソースコードから潜り込む
-
VMの初期化中にエラーが発生しました java/lang/NoClassDefFoundError: java/lang/Object
-
IDEA パッケージステートメントの欠落
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] Java で、あるコンストラクタを別のコンストラクタから呼び出すにはどうすればよいですか?
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] HashMapを直接(リテラルに)初期化する方法は?
最新
-
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の実行中に「javaの例外が発生しました」と表示された場合はどうすればよいですか?
-
Spring Boot による HTTPS アクセスの設定
-
JQuery DataTable 详解
-
node js npm gruntインストール、elasticsearch-head 5.Xインストール
-
自動配線された依存性のインジェクションに失敗しました。
-
spring aop アドバイスからの Null 戻り値が、サマリーのプリミティブ戻り値と一致しない。
-
org.glassfish.jersey.servlet.ServletContainer
-
JSPで「リストが型解決できない!」の解決方法
-
ブラウザでの大容量ファイルスライスアップロード(Javaサーバサイド実装)
-
Maven Pluginの実行がライフサイクル設定の対象外であるエラーの解決