167

最近、オフィスのAndroidプロジェクトでArrayListを使用していますが、ListとArrayListの違いが少しわかりませんが、何を使用すればよいですか?

また、私はそれのいくつかの実装を見ました。

List<SomeObject> myList = new ArrayList<SomeObject>();

ArrayList<SomeObject> myList = new ArrayList<SomeObject>();

これら2つのインスタンスの違いは何ですか?

4

1 に答える 1

177

どちらの例でも、リストの実装に違いはありません。ただし、コードで変数myListをさらに使用する方法には違いがあります。

リストを次のように定義する場合:

List myList = new ArrayList();

リストインターフェイスで定義されているメソッドと参照メンバーのみを呼び出すことができます。次のように定義した場合:

ArrayList myList = new ArrayList();

Listから定義が継承されているメンバーに加えて、ArrayList固有のメソッドを呼び出し、ArrayList固有のメンバーを使用できるようになります。

それでも、ArrayListで実装された最初の例でListインターフェイスのメソッドを呼び出すと、ArrayListのメソッドが呼び出されます(Listインターフェイスはメソッドを実装していないため)。

それはポリモーフィズムと呼ばれます。あなたはそれを読むことができます。

于 2013-02-15T20:58:42.593 に答える