最近、オフィスのAndroidプロジェクトでArrayListを使用していますが、ListとArrayListの違いが少しわかりませんが、何を使用すればよいですか?
また、私はそれのいくつかの実装を見ました。
List<SomeObject> myList = new ArrayList<SomeObject>();
ArrayList<SomeObject> myList = new ArrayList<SomeObject>();
これら2つのインスタンスの違いは何ですか?
どちらの例でも、リストの実装に違いはありません。ただし、コードで変数myListをさらに使用する方法には違いがあります。
リストを次のように定義する場合:
List myList = new ArrayList();
リストインターフェイスで定義されているメソッドと参照メンバーのみを呼び出すことができます。次のように定義した場合:
ArrayList myList = new ArrayList();
Listから定義が継承されているメンバーに加えて、ArrayList固有のメソッドを呼び出し、ArrayList固有のメンバーを使用できるようになります。
それでも、ArrayListで実装された最初の例でListインターフェイスのメソッドを呼び出すと、ArrayListのメソッドが呼び出されます(Listインターフェイスはメソッドを実装していないため)。
それはポリモーフィズムと呼ばれます。あなたはそれを読むことができます。