0

とは実装可能なインターフェイスであり、Listとはオブジェクトを作成して使用できるクラスであることを知っています。MapArrayListHashMap

私は2つのペアの違いを知っています。私の実際の質問は、次の 2 つのステートメントに違いはありますか?

HashMap< K, V>  myMap = new HashMap<K, V>(); 
Map< K, V> myMap = new HashMap<K, V>();

ある場合、違いは何ですか?また、いつどちらを使用する必要がありますか? 同様に、次の違いは何ですか。

ArrayList< Integer> myList = new ArrayList<Integer>();
List< Integer> myList = new ArrayList<Integer>();
4

2 に答える 2

2
HashMap< K, V> myMap = new HashMap(); 

HashMapJava のどこでも見られるように、のインスタンスを作成しています。

一方:

Map< K, V> myMap = new HashMap();

Mapインターフェイスを使用したプログラミングと呼ばれる具体的な実装を使用して のインスタンスを作成しています。

2 番目の方法、つまりProgramming with interfacesは、プログラムにモジュール性をもたらし ます。

利点とは何か、いつそれを行うべきかについて、ここに良い説明があります。

Collection インターフェイスを使用して ArrayList オブジェクトを作成するポリモーフィズムの利点は何ですか?

于 2013-09-14T13:25:05.893 に答える
1

ArrayListListインターフェイスの具体的な実装です。

したがって、違いは、具象クラス参照があるものと、インターフェイス参照があるものにあります。

HashMap< K, V>  myMap = new HashMap<K, V>(); //reference of concrete class HashMap
Map< K, V>  myMap = new HashMap<K, V>(); //reference of interface Map

常にインターフェイスを使用してプログラミングするようにしてください

注:具体的な実装を自由に使用できるローカル変数については、インターフェイスを備えたプログラムを他の 場所に渡すときに使用する必要があります。Map

その他の違いは、Map一方ではメソッドを呼び出すことができないことですHashMap

于 2013-09-14T13:23:34.793 に答える