古詩詞大全網 - 四字成語 - ArrayList list = new ArrayList() 和List<String> list = new ArrayList<String>() 的區別

ArrayList list = new ArrayList() 和List<String> list = new ArrayList<String>() 的區別

List和ArrayList的區別

List是壹個接口,而ListArray是壹個類。

ListArray繼承並實現了List。

所以List不能被構造,但可以向上面那樣為List創建壹個引用,而ListArray就可以被構造。

List list; //正確 list=null;

List list=new List(); // 是錯誤的用法

List list = new ArrayList();這句創建了壹個ArrayList的對象後把上溯到了List。此時它是壹個List對象了,有些ArrayList有但是List沒有的屬性和方法,它就不能再用了。

而ArrayList list=new ArrayList();創建壹對象則保留了ArrayList的所有屬性。

這是壹個例子:

import java.util.*;

public class TestList{

public static void main(String[] args){

List list = new ArrayList();

ArrayList arrayList = new ArrayList();

list.trimToSize(); //錯誤,沒有該方法。

arrayList.trimToSize(); //ArrayList裏有該方法。

}

}

編譯壹下就知道結果了。

如果這個樣子:

List a=new ArrayList();

則a擁有List與ArrayList的所有屬性和方法,不會減少

如果List與ArrayList中有相同的屬性(如int i),有相同的方法(如void f()),

則a.i是調用了List中的i

a.f()是調用了ArrayList中的f();