我对List类有疑问。根据我的理解List是一个派生自Collection类的类。我的问题是,当我在互联网上阅读例子时,它会说例如List<进入>项;
我很难理解这实际意味着什么?入口应该是另一个类,但我不明白它是如何工作的。我读它,创建类型Entry列表并将其存储在条目中,这是正确的吗?只是为了澄清我的问题,最让我感到困惑的是它的Entry部分,如果它是另一个类,它是如何使列表功能的?它是在类Entry中创建的对象,它描述了它的列表类型?一个例子就是很棒。
如果我不够清楚,我很抱歉,任何帮助都非常感激。我在谈论这个特殊情况下的Java。
答案 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
。
这里有好文章:
答案 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
之前不要过于担心,然后您可以查阅文档以了解如何从中获取数据。