这在Java中的ArrayList中意味着什么

时间:2011-05-29 03:43:16

标签: java generics arraylist

我是Java新手,我看过像这样的ArrayList示例。

  listing = new ArrayList<Lot>();

我知道如果我想创建一个空数组列表。然后我将使用ArrayList()

但我不明白“<Lot>”与“ArrayList”之间的()是什么。

有人可以向我解释一下吗?

由于

4 个答案:

答案 0 :(得分:4)

它被称为类型参数。它表示ArrayList仅包含Lot类型的对象 查看Generics的概念。

您将在此示例中使用此ArrayList<Lot>

// (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  

上述两点需要注意,例如

  1. e.g(b)中,由于我们已经指定ArrayList将只包含Lot类型in Line 3的对象,因此我们无需将其强制转换为类型对象Lot。这是因为编译器已经知道它只有Lot类型的对象。
  2. 尝试将任何其他类型的对象添加到e.g (b)将导致编译时错误。这是因为编译器已经识别出此List特定于包含仅Lot类型的元素。这称为type checking

答案 1 :(得分:4)

这是Java Generics。 <Lot>表示ArrayList将只包含Lot类型的对象。它很有用,因为编译器可以对ArrayList进行类型检查。

答案 2 :(得分:0)

It is an extension to Java's type system called, Generics

泛型允许您创建一个List,其中包含Object的特定子类型(或实现特定接口的一组特定Object,而不是一个集合只保留普通Object s。

答案 3 :(得分:0)

listing = new ArrayList<Lot>();

这一行只是说要在 ArrayList 中插入,更新,检索的对象类型属于 Lot 。     这就是java中的泛型     在从任何List中检索对象时,不需要使用泛型类型转换。