2011-05-29 107 views
1

我是Java新手,我看到了一個像這樣的ArrayList示例。Java中的ArrayList是什麼意思

listing = new ArrayList<Lot>(); 

我知道如果我想創建一個空的數組列表。然後,我會用ArrayList()

但我不明白什麼是「ArrayList」和「()」之間的<Lot>

有人可以解釋給我嗎?

謝謝

回答

4

這是Java泛型。 <Lot>指示ArrayList將只包含Lot類型的對象。這很有用,因爲編譯器可以對ArrayList進行類型檢查。

+0

感謝您的解釋。 – 2011-05-29 04:06:21

4

它被稱爲類型參數它表示ArrayList將只包含類型的對象Lot 退房概念Generics

你會得到與這個例子中,使用這種ArrayList<Lot>的:。

在上面如

  1. e.g(b)要注意個
    // (a)Without Generics .... 
    List myIntList = new ArrayList();     // 1 
    myIntList.add(new Lot(0));       // 2 
    Lot x = (Lot) myIntList.iterator().next();   // 3 
    
    
    // (b)With Generics .... 
    List<Lot> myIntList = new ArrayList<Lot>();  // 1’ 
    myIntList.add(new Lot(0));       // 2’ 
    Lot x = myIntList.iterator().next();    // 3 
    

    兩個點,因爲我們已經指定了ArrayList將包含類型地塊,in Line 3的唯一對象,我們沒有執行它鑄造類型對象Lot。這是因爲編譯器已經知道它只有Lot類型的對象。

  2. 試圖添加任何其他類型的對象到e.g (b)將導致編譯時錯誤。這是因爲編譯器已經識別出此列表是特定的,只包含Lot類型的元素。這就是所謂的type checking
+0

感謝您的解釋。 – 2011-05-29 04:06:34

0
listing = new ArrayList<Lot>(); 

此行只是說,對象的類型將被插入,更新或從的ArrayList檢索是類型地塊的。 這就是所謂的java中的泛型。
從任何列表中檢索對象時,不需要使用泛型類型轉換。