List类如何工作的说明

时间:2011-10-12 18:46:42

标签: java class list generics generic-list

我对List类有疑问。根据我的理解List是一个派生自Collection类的类。我的问题是,当我在互联网上阅读例子时,它会说例如List<进入>项;

我很难理解这实际意味着什么?入口应该是另一个类,但我不明白它是如何工作的。我读它,创建类型Entry列表并将其存储在条目中,这是正确的吗?只是为了澄清我的问题,最让我感到困惑的是它的Entry部分,如果它是另一个类,它是如何使列表功能的?它是在类Entry中创建的对象,它描述了它的列表类型?一个例子就是很棒。

如果我不够清楚,我很抱歉,任何帮助都非常感激。我在谈论这个特殊情况下的Java。

4 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

必须阅读“参赛名单”。它描述了哪种对象可以进入列表。阅读generics tutorial了解详情。

答案 2 :(得分:0)

在Java中没有泛型集合这样的东西。该列表想知道你要把它放在里面。例如,List是包含字符串的列表。 List是一个包含Integers的列表。

您应该注意,您无法在集合中存储基元(整数,浮点数,双精度数等)。你必须装箱。 (int - &gt; Integer,float - &gt; Float,double - &gt; Double)。

答案 3 :(得分:-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> >()

最后一行创建了一个列表列表,通常用于存储二维对象数组。

在您需要Entry之前不要过于担心,然后您可以查阅文档以了解如何从中获取数据。