Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中Collection和Arraylist的区别?_Java - Fatal编程技术网

Java中Collection和Arraylist的区别?

Java中Collection和Arraylist的区别?,java,Java,可能重复: 对象al和c之间有什么区别?它们是相同的还是什么?创建了相同的对象,但引用不同 因此,在第二种情况下,您只能像处理集合一样处理ArrayList,除非进行强制转换。第二种情况是。它允许将ArrayList替换为另一个集合(例如向量或树集),而不会产生任何副作用。集合是一种安全的方法。看看这些方法 列表具有按索引访问的方法。列表还扩展了集合接口 ArrayList是实现List接口的具体实现。ArrayList 你所做的只是一些抽象 如果您这样做: Collection foo =

可能重复:


对象
al
c
之间有什么区别?它们是相同的还是什么?

创建了相同的对象,但引用不同


因此,在第二种情况下,您只能像处理集合一样处理
ArrayList
,除非进行强制转换。

第二种情况是。它允许将
ArrayList
替换为另一个
集合
(例如
向量
树集
),而不会产生任何副作用。

集合
是一种安全的方法。看看这些方法

列表
具有按索引访问的方法。列表还扩展了
集合
接口

ArrayList
是实现
List
接口的具体实现。ArrayList

你所做的只是一些抽象

如果您这样做:

Collection foo = new ArrayList();

您将无法访问
列表
接口方法。例如使用索引访问。

al
中,您被阻止仅使用ArrayList。除了arraylist,您无法转换/强制转换任何内容


c
中,可以转换/强制转换实现
集合
接口的任何类。

集合API是一组支持对象集合操作的类和接口

类的示例:HashSet、HashMap、ArrayList、LinkedList、TreeSet和TreeMap。 接口示例:集合、集合、列表和映射

鉴于, ArrayList:它是可重新调整大小的阵列实现。属于集合中的“列表”组。它允许所有元素,包括null。它不是线程安全的

集合:它实现对集合进行操作的多态算法

集合:它是集合层次结构中的根接口

以下接口(集合类型)扩展了集合接口:

  • 名单
  • 设置
  • 分类集
  • NavigableSet
  • 排队
  • 德克
Java没有可用的集合接口实现,因此必须使用列出的子类型之一。集合接口只定义了一组方法(行为),每个集合子类型共享这些方法。这样就可以忽略您正在使用的特定类型的集合,而将其视为一个集合。这是标准的继承,所以没有什么神奇之处,但它仍然可以不时成为一个不错的特性

Collection foo = new ArrayList();

这一个更通用,您可以从其他集合实现中获得好处。

“问题太简单了”,但只有这个答案触及问题的核心。在我看来,这不是对“琐碎问题”的回答。它不能解释为什么对象al和c是根本不同的。
Collection foo = new ArrayList();