web-dev-qa-db-ja.com

マップをインスタンス化できません...どうしてですか?

Map<String, ArrayList<Pair<String, Integer>>> k = new  Map<String, ArrayList<Pair<String, Integer>>>();

この行は私のコードにあります。 Stringを含むMapをインスタンス化し、次にStringとIntegerのペアのArrayListをインスタンス化します。

ペアは、私のパッケージにある、私が書いたクラスです。

「マップタイプをインスタンス化できません>>();

何故なの?理にかなっているようだ...

33

組み込みのMapはインターフェースであり、インスタンス化することはできません。割り当ての右側で、次のような多くの具体的な実装クラスから選択できます。

  • ConcurrentHashMap
  • HashMap
  • LinkedHashMap
  • TreeMap

その他多数。 MapのJavadoc は、多くの直接的な具体的な実装をリストしています。

56
rgettman

インターフェイスをインスタンス化することはできませんインターフェイスを実装する具体的なクラスを使用する必要があります

Map<String, ArrayList<Pair<String, Integer>>> k = new  HashMap<String, ArrayList<Pair<String, Integer>>>();