エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

【Java】CollectionとListとArrayListの違い【844日目】

ListとArrayList

Javaで複数データを扱うときに、ListとかArrayListとか出るけど、何が違うのか。

全部ArrayListでいいのでは?なんでそうしているのか

interfaceと実際のクラス

public interface Collection<E> extends Iterable<E> {
public interface List<E> extends Collection<E> {
public class ArrayList<E> extends AbstractList<E>
        implements List<E>, RandomAccess, Cloneable, java.io.Serializable

ということで、ListやCollectionはあくまでinterfaceで、ArrayListは具象クラス。

ArrayListは、いくつかのinterfaceを実装したりしているので、 clone()などの関数を使う時には、
ArrayListの型で宣言をしよう。

逆に、Listの機能で事足りる時には、Listにしておくとか、
実装がList実装をしている別なクラスにが使われる可能性があれば、Listで宣言してインスタンスを突っ込む形にしておきましょう。