java中的noob级别泛型集合

时间:2012-01-09 18:29:41

标签: java generics types collections

关于:

List<String> mystring = new ArrayList<String>();

如果我错了,请纠正我:

ListCollection,也可以是SetQueueMap

String是一种类型。

mystring是此变量的名称,将是String个对象的通用集合。

ArrayList是一个?也可能是?

如果我正与其他开发人员交谈,我该怎么称呼ArrayList

6 个答案:

答案 0 :(得分:2)

列表是一个界面。 ArrayList是List的实现(与LinkedList一样)。

答案 1 :(得分:1)

  1. ArrayList是List接口的实现。
  2. ArrayList是一个具体的mystring变量类(但是在这个上下文中它应该是无关紧要的,因为mystring属于List类型)

答案 2 :(得分:1)

ArrayList<String>是(命名错误的)mystring变量的具体类型。

答案 3 :(得分:1)

  1. List是一个界面。 ArrayList是实现此接口的具体类。
  2. 列表不能是SetQueueMapList以外的任何其他内容。
  3. StringObject
  4. List<String> mystring = new ArrayList<String>();表示myStringString个实例的集合(在本例中为列表)。

答案 4 :(得分:1)

列表是一个接口。它为Object提供了一个行为。在这种情况下,ArrayList是实现。但它也可以是实现List接口的任何其他对象。矢量是另一个例子。

在这种情况下,Vector的工作方式与ArrayList非常相似,但是同步。如果你需要并发,你可能会使用Vector,但它需要付出代价。它比ArrayList慢一点。

如果你曾经在Java Mobile工作过,你会发现你只有Vector而没有ArrayList。

ArrayList可以是您想要的任何集合,但是您在声明中设置了类型,因此当您从列表中检索对象时,它会期望该类型。如果你还需要其他东西,你就必须进行铸造。

答案 5 :(得分:1)

如果您正在与另一位开发人员讨论此特定代码行,并且您的讨论主题涉及有序的元素集合,那么您应该将其称为List。这样,您就可以访问以mystring对象为特征的所有List特定行为。

您可以像对待任何集合(即List,Queue,Set)那样与其进行交互。然后,您只能访问所有这些类型中的公分母行为。顺便说一句,Collecton或更具体的List不能是Map。