1

次のような複雑なデータ構造を実装しようとしています

Map<A,Set<B>> map = new HashMap<A,Set<B>>();

しかし、このデータ構造にコンテンツを追加する方法がわかりません。私はしようとしています

map.put(a,b);

しかし、それはセットを期待しているので役に立ちません。私が持っている要件は、このデータ構造を実装する必要があります。何かご意見は?

4

3 に答える 3

1

addハッシュマップに含まれるセット内の要素を次のようにする必要があります。

if (!map.containsKey(a)) {
    map.put(a, new Set<B>());
}
map.get(a).add(b);
于 2012-04-18T16:09:56.037 に答える
1

プロジェクトに依存関係を追加する余裕がある場合は、Guavaがこれをサポートしています。SetMultimapを使用する必要があります。

于 2012-04-18T16:10:15.433 に答える
0

最初にセットを取得してから、それに追加する必要があります。

map.get(a).put(b);

セットがまだ存在しないという特殊なケースを処理する必要がある場合もあります。

Set<B> set = map.get(a);
if (set == null)
{
    set = new HashSet<B>();
    map.put(a, set);
}
set.put(b);
于 2012-04-18T16:09:59.780 に答える