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で宣言してインスタンスを突っ込む形にしておきましょう。