Java集合类可用于存储数量不等的对象,并可以实现常用的数据结构,如栈、队列等。除此之外,Java集合还可用于保存具有映射关系的关联数组。
Java集合大致可分为Set、List、Queue和Map四种体系:
其中Set代表无序、不可重复的集合;
其中List代表有序、重复的集合;
其中Map则代表具有映射关系的集合,
其中Queue代表一种队列集合实现,Java5中增加了Queue体系集合,后续再研究。
Java集合就像一种容器,可以把多个对象(实际上是对象的引用,但习惯上都称对象)“丢进”该容器中。在Java 5之前,Java集合会丢失容器中所有对象的数据类型,把所有对象都当成Object类型处理;从Java 5增加了泛型以后,Java集合可以记住容器中对象的数据类型,从而可以编写出更简洁、健壮的代码。
1.集合类干啥的?(又称容器类,保存数量不确定的数据,以及保存具有映射关系的数据)
在编程时,常常需要集中存放多个数据,可以使用数组来保存多个对象,但数组长度不可变 化,一旦在初始化数组时指定了数组长度,这个数组长度就是不可变的,如果需要保存数量变化的数据,数组就有点无能为力了;而且数组无法保存具有映射关系的数据,如成绩表:语文—79,数学—80, 这种数据看上去像两个数组,但这两个数组的元素之间有一定的关联关系。为了保存数量不确定的数据,以及保存具有映射关系的数据(也被称为关联数组),Java提供了集合类。集合类主要负责保存、盛装其他数据,因此集合类也被称为容器类。所有的集合类都位于java.util包下,后来为了处理多线程环境下的并发安全问题,Java 5
还在java.util.concurrent包下提供了一些多线程支持的集合类。
2.集合类VS数组区别
1.数组元素既可以是基本类型的值,也可以是对象(实际上保存的是对象的引用变量);而集合里只能保存对象 (实际上只是保存对象的引用变量,但通常习惯上认为集合里保存的
是对象)。
3.Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口又包含了一些子接口或实现类。如下为继承树:
实线边框的是实现类;
中虚线边框的是抽象类;
小点线边框的是接口;
虚线白空箭头表示:实现关系;
实线白空箭头表示:继承关系;
实线黑箭头表示:依赖关系,如comparable和comparator
虚线黑箭头表示:Iterator接口可以被Collection接口用,Collection接口又可被Map接口使用。Iterator下有LinkIterator,List接口可以使用。
3.java集合类来了
Collection(集合的最大接口)体系里的集合:
1.Set和List接口是Collection接口派生子接口,它们分别代表了无序集合和有序集合;但是其实SortedSet 可以对集合中的数据进行排序。
2.Queue是Java提供的队列实现,有点类似于List。