2014-08-30 168 views
0

此代码的含义。 为什么列表=链表列表和链接列表

List<String> list1 = new LinkedList<String>(); 
List<String> list2 = new LinkedList<String>(); 
+0

它是一种铸造方法。列表比LinkedList 更通用。当在参数或变量中使用它时,您现在可以分配/传递从列表派生的任何东西。 (LinkedList,但也DoubleLinkedList,...列表,等等) – 2014-08-30 10:25:27

+0

现在我投票结束你的问题作为重复。如果您不同意我的行动,请随时通知我并说明不重复的原因。在这种情况下,您还应该使用关于您想知道的信息的更多详细信息来编辑您的问题,这些信息不包含在重复问题中。 – Pshemo 2014-08-30 10:54:24

回答

1

因为List是一个接口,其可以被分配给任何实现类。 LinkedList implements List,因此该分配是合法的。见programming to an interface

+0

呃,没有。 IList是界面,列表是一个通用类。 – 2014-08-30 10:23:30

+1

@MarvinSmit你正在使用哪种编程语言?这个问题被标记为Java,为此我的答案是正确的。 Java不包含“IList”。 – bcsb1001 2014-08-30 10:24:25

+0

废话。我很抱歉!混合2种多种语言。你是对的。 – 2014-08-30 10:25:54

0

您会看到该语言的设计特征。

列表是从其它类型的由

public interface List<T> ... 
    public int size(); 
    public T get(int i); 

distinghuished一般API,其中作为实现类被指定为这样:

public class LinkedList implements List ... 
publlc class ArrrayList implements List ... 

通过声明一个变量是“接口的“您将实现保持开放状态(例如在将来更改或重新分配另一个对象)。你不要高于的变量)。

这也允许有处理任何种类的List的函数。

void f(List list) { ... } 

其他一些简单的语言没有这个选择,有一种List,一种Map,一种Set。通过允许程序员选择实现技术质量。就像选择汽车品牌而不是汽车一样。