新疆都市报 > 科技 > 区块链 >

java集合之Collection和Collections的源码

发布时间:2019-11-07 09:30来源: 未知


今天我们来讲讲容器,何为容器?一个可以存放东西的物品。在JAVA世界里的容器,自然是能存储数据的物品。在百度百科上是这么描述的:JAVA容器可以管理对象的生命周期、对象与对象之间的依赖关系,您可以使用一个配置文件(通常是XML),在上面定义好对象的名称、如何产生(Prototype 方式或Singleton 方式)、哪个对象产生之后必须设定成为某个对象的属性等,在启动容器之后,所有的对象都可以直接取用,不用编写任何一行程序代码来产生对象,或是建立对象与对象之间的依赖关系。

一、java容器有哪些?

答:java容器包含List、ArrayList、Vector,Map、HashTable、HashMap、HashSet

二、Collection和Collections有什么区别?

答:最大的区别就是,前者是集合接口,后者是类,我们从源码分析,先来一张关系图

上面的关系图也许看着有点晕,那我拿些源码出来看,大家边看图,边看源码,会理解更深,今天我们就拿List做关系分解public interface List<E> extends Collection<E>{} //List继承Collection,看上面的继承线

AbstractCollection抽象类实现Collection接口public abstract class AbstractCollection<E> implements Collection<E> {}

AbstractList抽象类继承AbstractCollectionpublic abstract class AbstractList<E> extends AbstractCollection<E> implements List<E> {

ArrayList实现类继承AbstractList抽象类并且实现List集合接口public class ArrayList<E> extends AbstractList<E>

implements List<E>, RandomAccess, Cloneable, java.io.Serializable