2014-08-30 121 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。通過允許程序員選擇實現技術質量。就像選擇汽車品牌而不是汽車一樣。