List list=new ArrayList()とArrayList arrayList=new ArrayList()の違い
1657 ワード
List list=new ArrayList()とArrayList arrayList=new ArrayList()の違い
初めての勉強ですが、間違っていますので、よろしくお願いします.
Listはインタフェースであり、ArrayListはListの実装クラス(ArrayListはListインタフェースを継承するものではなく、Listインタフェースを実装するもの)Listはインタフェースであり、インスタンス化できない(インタフェースは抽象クラスである)ので、その実装クラスでインスタンス化しなければならない.
1.ネット上では、
2.また、リストがArrayListと同じ属性(int iなど)を有し、同じ方法(void f()など)を有する場合、a.iはListのiを呼び出し、a.f()はArrayListのf()を呼び出す.(証明の仕方がわからない)
なぜArrayList alist=new ArrayList()ではなくList list=new ArrayList()を使うのか
ある人はこう言いました.
問題はListインタフェースに複数の実装クラスがあることです.今あなたが使っているのはArrayListです.いつか他の実装クラスに変える必要があるかもしれません.LinkedListやVectorなどです.このとき、この行を変更すればいいです.List list=new LinkedList()です.他のlistを使用した場所のコードは変更する必要はありません.ArrayList alist=new ArrayList()を使用し始めたとすると、特にArrayListを使用してクラス固有の方法と属性を実装した場合、変更されます.
初めての勉強ですが、間違っていますので、よろしくお願いします.
Listはインタフェースであり、ArrayListはListの実装クラス(ArrayListはListインタフェースを継承するものではなく、Listインタフェースを実装するもの)Listはインタフェースであり、インスタンス化できない(インタフェースは抽象クラスである)ので、その実装クラスでインスタンス化しなければならない.
1.ネット上では、
List list = new ArrayList(); ArrayList List。 List , ArrayList List , 。( )
ArrayList list1 = new ArrayList();
List list2 = new ArrayList<>();
list1.trimToSize();
list2.trimToSize();//
List list2 = new ArrayList<>(); ,list2 List , ArrayList 。
2.また、リストがArrayListと同じ属性(int iなど)を有し、同じ方法(void f()など)を有する場合、a.iはListのiを呼び出し、a.f()はArrayListのf()を呼び出す.(証明の仕方がわからない)
なぜArrayList alist=new ArrayList()ではなくList list=new ArrayList()を使うのか
ある人はこう言いました.
問題はListインタフェースに複数の実装クラスがあることです.今あなたが使っているのはArrayListです.いつか他の実装クラスに変える必要があるかもしれません.LinkedListやVectorなどです.このとき、この行を変更すればいいです.List list=new LinkedList()です.他のlistを使用した場所のコードは変更する必要はありません.ArrayList alist=new ArrayList()を使用し始めたとすると、特にArrayListを使用してクラス固有の方法と属性を実装した場合、変更されます.
ArrayList list1 = new ArrayList();
List list2 = new ArrayList<>();
List list2 = new LinkedList();// ; rename list2
list2 = new LinkedList();//
??