2 indizes /キーのキーデータ構造を持つデータ構造はありますか?

ndsvw:

データ構造は、私はまた、価値のキーとして解釈することができる「キー値」のペアを格納することができますことは、(Javaのutilに、グアバ...)Javaではありますか?

例:

Datastructure d = new Datastructure();

d.add(1, "foo");
d.add(21 "bar");
d.add(33 "hello");
d.add(55 "world");

以下のような関数d.get1(1)を返す必要がありますfoo以下のような関数d.get2("foo")を返す必要があります1

以下のような関数d.get1(33)を返す必要がありますhello以下のような関数d.get2("hello")を返す必要があります33

...

このように動作します何かがありますか?

Razib:

あなたが探していることは、本質的にグアバので実装されますBiMap
あなたは使用することができますグアバこのようの2領域マップを-

BiMap<Integer, String> biMap = HashBiMap.create();
biMap.put(1, "foo");
biMap.put(21, "bar");

System.out.println(biMap.get("1"))); //foo
System.out.println(biMap.inverse().get("bar"))); //21

リンク:
- グアバ2領域マップへのガイド
- 2領域マップの javaのドキュメント

また、あなたは、Apache共通に使用することができBiDiMap、このように:

BidiMap<String, String> map = new DualHashBidiMap<>();
map.put(1, "foo");
map.put(21, "bar");
System.out.println(map.get(1)); //1

//reversing the mapping 
BidiMap<String, String> reversedMap = map.inverseBidiMap();
System.out.println(reversedMap.get("foo")); //1

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=120152&siteId=1