集合Collection学习笔记
Collection是什么
通常,我们在开发时是不知道对象的数量的,有时甚至不知道对象的类型是什么。为了满足这个开发需求,我们要求能在任何时候创建任意数量的对象,这些对象用什么来装呢?我们首先想到是数组,但是!数组只能存放同一类型的数据,而且其长度是固定的。那怎么办?!集合便应运而生了。
collection是java.util是在包中,是一个用来存放java对象的容器
注意
- 集合只能存放引用类型对象。比如存入int数据,它会自动装箱成Integer存放。
- 集合存放的是对象的应用,而非对象本身。对象本身存在方堆内存中。
- 集合可以存放不同类型,不限数量的数据类型。
Collection 架构
来一张图
从图中发现,上述所有的集合类,除了map系列的集合,即左边的集合都实现了Iterator接口。
Iterator是一个用来遍历集合中元素的接口,主要有hashNext(),next(),remove()三种方法。
它的子接口ListIterator在它的基础上又添加了三种方法,分别是add(),previous(),hasPrevious()。
从图中我们可以看到:
1.集合主要分为Collection和Map两个接口。
2.Collection又分别被List和Set继承。
3.List被AbstractList实现,然后分为3个子类,ArrayList,LinkList和VectorList。
4.Set被AbstractSet实现,又分为2个子类,HashSet和TreeSet。
5.Map被AbstractMap实现,又分为2个子类,HashMap和TreeMap。
6.Map被Hashtable实现。