2016-10-28 21 views
-4

私は簡単な質問をしたいと思います。これらはすべてHashTableのコンストラクタですか?Java HashMapコンストラクタ

HashMap() 
HashMap(Map m) 
HashMap(int capacity) 
HashMap(int capacity, float fillRatio) 

「はい」の場合、次の理由でエラーが発生しないのはなぜですか?

HashMap<Character, Integer> hash = new HashMap<Character, Integer>(); 
+3

genericsを使用し、最初のコンストラクタを使用する - https://docs.oracle.com/javase/tutorial/java/generics/ –

+2

を参照してください。エラーが発生するのはなぜですか? – Li357

+1

利用可能なコンストラクタを知りたい場合は、javadoc – Jens

答えて

2

そうなら、なぜ以下のステートメントはエラーを生成しませんか?

HashMap<Character, Integer> hash = new HashMap<Character, Integer>(); 

それはあなたがリストされた最初のコンストラクタ、HashMap()の署名と一致しているため。あなたが見る他の2つのものは、コンストラクタの引数ではなくtype argumentsです。それらは、HashMapクラスのタイプのパラメータとして受信されます。このクラスは、キーのタイプとして1番目を使用し、2番目はキーが格納するキー/値のペアの値のタイプとして使用します。