次のような複雑なデータ構造を実装しようとしています
Map<A,Set<B>> map = new HashMap<A,Set<B>>();
しかし、このデータ構造にコンテンツを追加する方法がわかりません。私はしようとしています
map.put(a,b);
しかし、それはセットを期待しているので役に立ちません。私が持っている要件は、このデータ構造を実装する必要があります。何かご意見は?
次のような複雑なデータ構造を実装しようとしています
Map<A,Set<B>> map = new HashMap<A,Set<B>>();
しかし、このデータ構造にコンテンツを追加する方法がわかりません。私はしようとしています
map.put(a,b);
しかし、それはセットを期待しているので役に立ちません。私が持っている要件は、このデータ構造を実装する必要があります。何かご意見は?
add
ハッシュマップに含まれるセット内の要素を次のようにする必要があります。
if (!map.containsKey(a)) {
map.put(a, new Set<B>());
}
map.get(a).add(b);
プロジェクトに依存関係を追加する余裕がある場合は、Guavaがこれをサポートしています。SetMultimapを使用する必要があります。
最初にセットを取得してから、それに追加する必要があります。
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);