关于:
List<String> mystring = new ArrayList<String>();
如果我错了,请纠正我:
List
是Collection
,也可以是Set
,Queue
或Map
。
String
是一种类型。
mystring
是此变量的名称,将是String
个对象的通用集合。
ArrayList
是一个?也可能是?
如果我正与其他开发人员交谈,我该怎么称呼ArrayList
?
答案 0 :(得分:2)
列表是一个界面。 ArrayList是List的实现(与LinkedList一样)。
答案 1 :(得分:1)
答案 2 :(得分:1)
ArrayList<String>
是(命名错误的)mystring变量的具体类型。
答案 3 :(得分:1)
List
是一个界面。 ArrayList
是实现此接口的具体类。Set
,Queue
,Map
或List
以外的任何其他内容。String
是Object
。List<String> mystring = new ArrayList<String>();
表示myString
是String
个实例的集合(在本例中为列表)。答案 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。