6

キーと値の代わりにキーとキーの構造を使用して、2 方向からアクセスできる一種のマップが必要です。これはJavaに存在しますか?そうでない場合、それを作成する最良の方法は何ですか?

例:

mySpecialHashMap.put("key1", "key2");

mySpecialMap.getL2R("key1") returns "key2";
mySpecialMap.getR2L("key2") returns "key1";
4

4 に答える 4

23

したがって、双方向マップが必要です。これには、 Apache Commons Collections BidiMapまたはGoogle Collections BiMapを使用できます。

于 2009-11-05T13:12:11.197 に答える
3

Guavaライブラリ (以前は Google Collections と呼ばれていました)のBiMapを参照してください。

HashBiMapが「mySpecialHashMap」として使用される例:

BiMap<String, String> myBiMap = HashBiMap.create();
myBiMap.put("key1", "key2");

myBiMap.get("key1"); // returns "key2"
myBiMap.inverse().get("key2"); // returns "key1"
于 2009-11-05T13:12:40.947 に答える
2

はい、Google Collections のBiMapがあります。

于 2009-11-05T13:11:39.793 に答える
1

または可逆的な列挙型については、この Stackoverflow questionを参照してください。

于 2009-11-05T13:13:22.897 に答える