1. ホーム
  2. java

[解決済み] ListとArrayListの違いは何ですか?[重複あり]

2022-04-23 15:08:50

質問

最近、会社のアンドロイドプロジェクトでArrayListを使っているのですが、ListとArrayListで少し迷っています。

また、そのような実装をいくつか見かけました。

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

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

この2つのインスタンスの違いは何でしょうか?

解決方法は?

どちらの例も、リストの実装に違いはありません。 しかし、変数myListをさらに利用する方法には違いがあります。

としてリストを定義した場合。

List myList = new ArrayList();

の場合、List インターフェースで定義されたメソッドや参照メンバのみを呼び出すことができます。 と定義した場合。

ArrayList myList = new ArrayList();

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

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

それをポリモーフィズムといいます。詳しくは本を読んでね。