我是Java新手,我看到了一個像這樣的ArrayList示例。Java中的ArrayList是什麼意思
listing = new ArrayList<Lot>();
我知道如果我想創建一個空的數組列表。然後,我會用ArrayList()
但我不明白什麼是「ArrayList
」和「()
」之間的<Lot>
。
有人可以解釋給我嗎?
謝謝
我是Java新手,我看到了一個像這樣的ArrayList示例。Java中的ArrayList是什麼意思
listing = new ArrayList<Lot>();
我知道如果我想創建一個空的數組列表。然後,我會用ArrayList()
但我不明白什麼是「ArrayList
」和「()
」之間的<Lot>
。
有人可以解釋給我嗎?
謝謝
這是Java泛型。 <Lot>
指示ArrayList將只包含Lot類型的對象。這很有用,因爲編譯器可以對ArrayList進行類型檢查。
It is an extension to Java's type system called, Generics。
泛型允許你創建一個List
包含的,而不是一個集合,只持有普通Object
個具體分型Object
S(或一組特定的Object
s表示實現特定的接口。
感謝您的解釋。 – 2011-05-29 04:06:52
它被稱爲類型參數它表示ArrayList
將只包含類型的對象Lot
退房概念Generics
你會得到與這個例子中,使用這種ArrayList<Lot>
的:。
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類型的對象。
e.g (b)
將導致編譯時錯誤。這是因爲編譯器已經識別出此列表是特定的,只包含Lot
類型的元素。這就是所謂的type checking
感謝您的解釋。 – 2011-05-29 04:06:34
listing = new ArrayList<Lot>();
此行只是說,對象的類型將被插入,更新或從的ArrayList檢索是類型地塊的。 這就是所謂的java中的泛型。
從任何列表中檢索對象時,不需要使用泛型類型轉換。
感謝您的解釋。 – 2011-05-29 04:06:21