在大多数示例中,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 :(得分:0)
Java提供了一个接口,可以由类作为一般合同来实现。因此,实现某个接口的类需要在其中实现接口的所有方法。 Java集和列表是两个这样的接口,链表或Arraylist是列表接口的实现。一套相同。您在左侧编写接口的原因是因为仅限制数据结构的功能以满足您所需的要求被认为是一种好的方式。如果您只想使用List功能而不是使用更广泛的想法,那么最好使用List - 这使得它不容易出现错误。您在右侧编写Linkedlist或Arraylist的原因是因为Java中的接口无法实例化(这与您在接口中没有实现的事实一致)。