此代碼的含義。 爲什麼列表=鏈表列表和鏈接列表
List<String> list1 = new LinkedList<String>();
List<String> list2 = new LinkedList<String>();
此代碼的含義。 爲什麼列表=鏈表列表和鏈接列表
List<String> list1 = new LinkedList<String>();
List<String> list2 = new LinkedList<String>();
因爲List
是一個接口,其可以被分配給任何實現類。 LinkedList
implements List
,因此該分配是合法的。見programming to an interface。
呃,沒有。 IList是界面,列表
@MarvinSmit你正在使用哪種編程語言?這個問題被標記爲Java,爲此我的答案是正確的。 Java不包含「IList」。 – bcsb1001 2014-08-30 10:24:25
廢話。我很抱歉!混合2種多種語言。你是對的。 – 2014-08-30 10:25:54
您會看到該語言的設計特徵。
列表是從其它類型的由
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。通過允許程序員選擇實現技術質量。就像選擇汽車品牌而不是汽車一樣。
它是一種鑄造方法。列表比LinkedList 更通用。當在參數或變量中使用它時,您現在可以分配/傳遞從列表派生的任何東西。 (LinkedList,但也DoubleLinkedList,...列表,等等) –
2014-08-30 10:25:27
現在我投票結束你的問題作爲重複。如果您不同意我的行動,請隨時通知我並說明不重複的原因。在這種情況下,您還應該使用關於您想知道的信息的更多詳細信息來編輯您的問題,這些信息不包含在重複問題中。 – Pshemo 2014-08-30 10:54:24