2013-03-31 131 views
0

這兩個列表有什麼區別?Java對象差異

ArrayList<String> list1 = new ArrayList<String>(2); 

List<String> list2 = new ArrayList<String>(2); 
+0

一個是List,一個是ArrayList。 List是一個接口,ArrayList是該接口的一個實現。 –

回答

0

這兩個列表之間沒有區別,每次創建ArrayList時都是如此。

區別在於ArrayList implements List,這是一個接口。

在您的代碼中,如果您引用接口而不是具體實現,您可以在任何時候替換List的實際實現。

0

list2的類型是List,因此稍後可以更容易地更改確切類型(而不是使用ArrayList)。在list1中,類型是顯式的ArrayList。

您應該儘可能地使用更一般的(使用列表),因爲這更靈活。