2011-10-12 48 views
0

我對List類有個疑問。根據我的理解,List是從Collection類派生的類。我的問題是,當我在互聯網上閱讀例子時,例如列表< Entry>條目;List類的工作原理的說明

我有輕微的困難,理解這實際上是什麼意思?入學應該是另一個班級,但我不明白它是如何工作的。我將它讀爲,創建Entry類型列表並將其存儲在條目中,是否正確?爲了澄清我的問題,最讓我困惑的是它的入口部分,如果是另一個類,那麼這個列表的功能如何呢?它是在類Entry中創建的對象,它描述了它的列表類型?一個例子會很棒。

我很抱歉,如果我沒有足夠清楚,任何幫助非常感謝。我在這個特例中談論Java。

回答

3

它被稱爲泛型。 Entry是類型參數。 List<Entry>表示「包含Entry對象的列表」。

樣例:

Entry entry1 = new Entry(); 
Entry entry2 = new Entry(); 
Entry entry3 = new Entry(); 
List<Entry> entryList = new ArrayList<Entry>(); 

list.add(entry1); 
list.add(entry2); 
list.add(entry3); 

而且你不能做到這一點:

Boat wrongTypeObject = new Boat(); 
list.add(wrongTypeObject); 

因爲對象wrongTypeObject不是Entry

好文章在這裏:

http://en.wikipedia.org/wiki/Generics_in_Java

+0

非常感謝你,澄清了我對此感到困惑的內容。 – DSF

+0

謝謝@ steve-kuo。 C#刪除了我的Java的很多東西!當然,List是Java中的一個接口(以及C#中的接口爲IList的類)。 – Joe

1

必須閱讀 「入門清單」。它描述了什麼樣的對象可以進入列表。閱讀generics tutorial瞭解更多信息。

0

Java中沒有這樣的通用集合。該名單想知道你要放在裏面。例如,List是一個包含字符串的列表。列表是一個包含整數的列表。

您應該注意,您不能將原始數據(整數,浮點數,雙精度等)存儲在集合中。你必須把它們裝箱。 (int - > Integer,float - > Float,double - > Double)。

-1

Entry是一個對象,用於存儲Map-derived類的內容,因此您可能會遇到偶爾的List<Entry>對象。然而,列表可以容納任何類型的對象,如String S,Integer S,甚至其他List S:

List<Integer> intList = new ArrayList<Integer>(); //Create a new list of integers 
List<String> strList = new ArrayList<String>(); //You can't actually create a List. Use one of the derived classes like ArrayList instead 

strList.add("A string!"); // Now the list has one String in it 
strList.add(3); //You can't do this because strList can only hold Strings 

ArrayList< ArrayList<String> > strMatrix = new ArrayList< ArrayList<String> >() 

這最後一行創建列表的列表,這是通常用於存儲2- D對象數組。

不要太擔心Entry s直到你需要它們,然後你可以參考文檔來看看如何從中獲取數據。

0

「Entry」被稱爲參數化類型。你可以用任何引用類型(類或接口)來替換條目,它不能是原始類型。一旦指定了參數化類型,該特定類的對象將被存儲到列表中。由於list是一個接口,所以你不能用new操作符實例化它。相反,你必須爲它分配一個實現這個接口的具體子類。如何初始化列表的一個常見示例如下:

List <Parameterized Type> varName = new ArrayListf <Parameterized Type>();