2016-10-30 89 views
0

在大多數例子JAVA集合對象被實例爲:Java集合對象實例化

List <String> l1 = new LinkedList<String>(); 

Set<String> s1 = new HashSet<String>(); 

相反的:

LinkedList<String> l1 = new LinkedList<String>(); 

HashSet<String> s1 = new HashSet<String>(); 

是什麼在實例化這些方法的差異?

回答

0

Java提供了一個可以由類實現的接口,因爲它是通用契約。因此,實現某個接口的類需要實現接口的所有方法。 Java集和列表是兩個這樣的接口,鏈表或Arraylist是列表接口的實現。相同的一套。你在左邊編寫一個接口的原因是因爲僅僅限制數據結構的功能來滿足你所需要的是一種很好的風格。如果您只需要List功能而不是使用更廣泛的想法,則最好使用List,這樣可以減少錯誤發生的機率。你在右邊寫一個Linkedlist或Arraylist的原因是因爲Java中的接口不能被實例化(這符合你沒有在接口中實現的事實)。