私はこれを書いた:
HashMap<String, String> map1 = new HashMap<String, String>();
Map<String, ArrayList<String>> map2 = new HashMap<String, ArrayList<String>>();
ハッシュマップの各キーに複数の値を許可しようとしています。したがって、最初のキーが「1」の場合、「1」を値「2」および「3」とペアにすることができます。
だからそれは次のようになります:
1 --> 2
|--> 3
しかし、私がそうするとき:
map2.put(key, value);
「互換性のない型」というエラーが表示され、ArrayListに変換できず、エラーはvalue
行の一部にあると表示されます。
Java 8を使用している場合は、これを非常に簡単に行うことができます。
String key = "someKey";
String value1 = "someValue1";
String value2 = "someValue2";
Map<String, List<String>> map2 = new HashMap<>();
map2.computeIfAbsent(key, k -> new ArrayList<>()).add(value1);
map2.computeIfAbsent(key, k -> new ArrayList<>()).add(value2);
System.out.println(map2);
のドキュメントにMap.computeIfAbsent(...)
は、ほとんどこの例があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加