ArrayList al=new ArrayList();
Collection c=new ArrayList();
对象 al
和 c
有什么区别吗?它们是相同的还是不同的?
ArrayList al=new ArrayList();
Collection c=new ArrayList();
对象 al
和 c
有什么区别吗?它们是相同的还是不同的?
集合API是一组支持对象集合操作的类和接口。
类的示例:HashSet、HashMap、ArrayList、LinkedList、TreeSet和TreeMap。接口的示例:Collection、Set、List和Map。
其中: ArrayList是可调整大小的数组实现,属于集合中的“List”组。它允许包括null在内的所有元素。它不是线程安全的。
Collections实现了在集合上运行的多态算法。
Collection是集合层次结构中的根接口。
以下接口(集合类型)扩展了Collection接口:
Java没有带有可用实现的Collection接口,因此您必须使用列出的子类型之一。Collection接口仅定义了这些Collection子类型共享的一组方法(行为)。这使得可以忽略您正在使用的特定类型的Collection,并将其视为Collection。这是标准继承,因此没有任何魔术,但有时仍然是一个不错的功能。
同一个对象被创建,但引用不同。
因此,在第二种情况下,您只能将您的ArrayList
作为Collection
来使用,除非进行强制类型转换。
al
中,你只能使用 arraylists。你不能转换或强制转换除 arraylist 之外的任何东西。c
中,你可以转换或强制转换任何实现 Collection
接口的类。