Collection <string> vs ArrayList <string> </string> </string>

时间:2014-03-26 06:31:16

标签: java

Collection<string> collection = new ArrayList<string>();

我注意到上面的代码实际上与ArrayList<string> collection = new ArrayList<string>();

相同

这是否意味着我可以使用任何名称替换第一个Collection / ArrayList,如

anyname<string> collection = new ArrayList<string>();

谢谢!

5 个答案:

答案 0 :(得分:0)

您可以这样做,因为ArrayList implements Collection

Class ArrayList<E>

java.lang.Object
  java.util.AbstractCollection<E>
    java.util.AbstractList<E>
      java.util.ArrayList<E>

All Implemented Interfaces:
Serializable, Cloneable, Iterable<E>, Collection<E>, List<E>, RandomAccess

----> http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html

答案 1 :(得分:0)

ArrayList实现了界面Collection,因此集合可以投射到Collection

请参阅http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html

以及关于使用接口http://docs.oracle.com/javase/tutorial/java/IandI/interfaceAsType.html

的本教程

答案 2 :(得分:0)

Collection是一个界面,而ArrayListCollection的实现之一。

由于ArrayList --> List --> Collection,您可以将ArrayList个实例声明为CollectionListArrayList。其他类型不起作用。

答案 3 :(得分:0)

why-define-a-java-object-using-interface-e-g-map-rather-than-implementation我希望这有助于您理解,为什么在初始化对象并将其存储到类型变量的引用时使用接口类型而不是具体实现。

答案 4 :(得分:-1)

使用ArrayList(实现Collection),您可以执行此操作。