コード:
Multimap<String, String> myMultimap = ArrayListMultimap.create();
myMultimap.put("12345", "qwer");
myMultimap.put("12345", "abcd");
myMultimap.put("12345", "qwer");
System.out.println(myMultimap);
結果:
{12345=[qwer, abcd, qwer]}
重複する「qwer」を排除することは可能ですか?ありがとう。
SetMultimap
の実装の1つを使用します。例: HashMultimap
:
SetMultimap<String, String> myMultimap = HashMultimap.create();
myMultimap.put("12345", "qwer");
myMultimap.put("12345", "abcd");
myMultimap.put("12345", "qwer");
System.out.println(myMultimap); // {12345=[abcd, qwer]}
ListMultimap
などのArrayListMultimap
は、重複するキーと値のペアを許可します。 SetMultimap
やHashMultimap
などのTreeMultimap
の実装を試してください。
これを行うには多くの方法があります。最も簡単なのは、SetMultimap
を使用することです。
あなたの与えられた例を持つJDKのみの解決策は、しかし単にMap<String, Set<String>>
、一意の値のSet
への一意のキーが1つあります。
Map<String, Set<String>> map = new HashMap<String, Set<String>>();
これを使用する利点は、外部のライブラリからデータ構造を取り込む必要がないことです。厳密にJavaコアライブラリを使用しています。