2016-10-30 90 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中的接口不能被实例化(这符合你没有在接口中实现的事实)。