java中的noob级泛型集合
关于:java中的noob级泛型集合,java,generics,types,collections,Java,Generics,Types,Collections,关于: List<String> mystring = new ArrayList<String>(); List mystring=new ArrayList(); 如果我错了,请纠正我: 列表是一个集合,也可以是设置、队列或映射 String是一种类型 mystring是此变量的名称,将是String对象的通用集合 ArrayList是一个?也可能是 如果我在和另一个开发人员交谈,我该怎么称呼ArrayList呢 ArrayList是List接口的一个实现 Arr
List<String> mystring = new ArrayList<String>();
List mystring=new ArrayList();
如果我错了,请纠正我:
列表
是一个集合
,也可以是设置
、队列
或映射
String
是一种类型
mystring
是此变量的名称,将是String
对象的通用集合
ArrayList
是一个?也可能是
如果我在和另一个开发人员交谈,我该怎么称呼ArrayList
呢
ArrayList
是(名称不正确的)mystring变量的具体类型
列表
是一个界面。ArrayList
是实现此接口的具体类集合
、队列
、映射
,也不能是列表
以外的任何内容字符串
是一个对象
List mystring=new ArrayList()
意味着myString
是String
实例的集合(在本例中是一个列表)列表是一个接口。ArrayList是List(与LinkedList一样)的实现。List是一个接口。它赋予对象一种行为。本例中的ArrayList是实现。但它也可以是实现列表接口的任何其他对象。向量是另一个例子 在这种情况下,Vector的工作原理与ArrayList非常相似,但它是同步的。如果您需要并发性,您可能会使用向量,但它是有代价的。它比ArrayList慢一点 如果您使用Java Mobile,您将看到您只有Vector而没有ArrayList
ArrayList可以是您想要的任何对象的集合,但是您正在声明中设置类型,因此当您从列表中检索对象时,它将期望该类型。如果你还需要什么,你就得做演员 如果您正在与另一位开发人员讨论这一特定代码行,并且您的讨论主题是关于元素的有序集合,那么您可能应该称之为列表。这样,您就可以访问mystring对象所描述的所有特定于列表的行为
您可以像处理任何集合(即列表、队列、集合)一样与它进行交互。然后,您只能访问所有这些类型中的公共分母行为。顺便说一句,集合或更具体地说列表不能是地图。So[interface][name]=new[implementation of interface]();确切地您没有义务在声明中使用接口,但是它的最佳实践是使用满足您需求的第一个接口。例如,如果集合具有所需的方法,则甚至不要使用列表。您也可以直接使用ArrayList,但在将来,如果您需要更改应用程序,这将更加困难,因为您需要更新所有引用。我喜欢这个答案,它很清楚,而且切中要害,尽管我认为您应该解释
设置
,队列
和映射
本身就是不从列表
扩展的接口。还有第四点,我觉得需要详细说明,mystring
是一种(类型)Collection
,因为Collection
是List
的超级接口,在这种情况下,它将是String
对象的List