2

KeyValuePairJavaにaのようなものはありますか?

次のクラスの要素の非常に長いリストがあります。

public class Foo {
    int id;
    Set<String> items;
}

ここに保存されます:

LinkedList<Foo> myList;

アイテムを検索するたびに、リストを反復処理してアイテムを検索しますが、これには時間がかかります。私はこのようなことをしたい:

myList.get(123) => items of the Foo with id = 123
4

5 に答える 5

6

Mapその目的のためにJavaで使用できます。キーと値のペアが許可されます。

Map<Integer,Set<String>> map = new HashMap<Integer,Set<String>>();

マップにアイテムを追加する

Set<String> set = new HashSet<String>();
      set.add("ABC");
      set.add("DEF");
      map.put(123,set);

マップからアイテムを取得する

  map .get(123)  will give  Set<String>  associated  with id  123
于 2013-05-24T10:43:31.697 に答える
4

のいくつかの実装を試してくださいjava.util.Map

詳細:こちら

于 2013-05-24T10:43:37.770 に答える
1

MultiMap<Integer,String>はあなたの場合に適していると思います。

于 2013-05-24T11:02:55.463 に答える
0

いわゆる MultiMap が必要です。Java にはデフォルトでそれがありませんが、その目的のためにいつでも Map を使用できます。

を使用してみてくださいHashMap<Integer, Set<String>>

于 2013-05-24T10:48:13.537 に答える