相信大家初学Java时对集合的概念也有一定的了解,那么java里面的集合又是什么呢?
一、集合是什么?
它和数组不同,数组既可以存储基本数据类型,也可以存储引用数据类型。而集合只能存储引用数据类型,比如你存入一个int型数据18放入集合中,其实它是自动转换成Integer类后存入的,Java中每一种基本数据类型都有对应的引用类型,如果存储基本数据类型,会被自动装箱。
它就像一个容器,专门用来存储java对象(实际上是对象名,即指向地址的指针),这些对象可以是任意数据类型,并且长度可变。其中,这些集合类都位于java.util包中,在使用时一定要注意导包的问题,否则会出现异常。
关系图如下,该图用到了UML(统一建模语言):
根据上图,发现一个特点,上述所有的集合,除了map系列的集合,即左边的集合都实现了Iterator接口。
Iterator(迭代器)是一个用来遍历集合中元素的接口,主要有hashNext(),next(),remove()三种方法。
它的子接口ListIterator在它的基础上又添加了三种方法,分别是add(),previous(),hasPrevious()。
二、集合的分类
集合按照其存储结构可以分为两大类:
1.单列集合Collection
如上图可见,Collection接口是单列集合的根接口,分别由List和Set两个子接口继承,且Java里所有的集合都是由Collection触发的。
1.1:List和Set集合的特点
- List集合的特点是元素有序可重复,只要是带集合、数组的都叫有序,因若无序就不会存在有下标;因此List中的每个元素都有索引(下标),使用此接口能够准确的控制每个元素插入的位置,用户也能够使用索引来访问List中的元素,List类似于Java的数组,list集合为Ob