Java集合概述

来源:互联网 发布:哪里申请免费域名 编辑:程序博客网 时间:2024/04/29 11:40
集合类和数组不一样,数组元素既可以是基本类型的值,也可以是对象(实际上保存的是对象的引用变量);而集合只能保存
对象(实际上也是对象的引用变量,但习惯上认为集合里保存的是对象)。
Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口

又包含了一些子接口或实现类。如下图是Collection接口和子接口及其实现类的继承树。


上图显示了Collection体系里的集合,粗线圈出的是Set和List接口时Collection接口派生的两个子接口,他们分别
代表了无须集合和有序集合;Queue是Java提供的队列实现,有点类似于List。

下图是Map体系里的继承树,所有的Map实现类用于保存具有映射关系的数据 


上图显示了Map接口的众多实现类,这些实现类在功能上、用法上存在一定的差异,但它们都有一个功能特征:Map保存
的每项数据都是Key-value对,也就是key和value两个值组成。 

根据上面的两张图粗线标识的3个接口,我们可以把Java的所有集合分为三大类,其中Set集合类似于一个罐子,把一个
对象添加到Set集合时,Set集合无法记住添加这个元素的顺序,所以Set里的元素不能重复(否则系统无法准确识别这个元素);
List集合非常类似于数组,它可以记住每个添加元素的顺序,只是List的长度可变。Map集合也像一个罐子,只是它里面的每
项数据都由两个值组成。下图显示了这三种集合的示意图:


从上图可以看出,如果访问list集合中的元素,可以直接根据元素的索引来访问;如果需要访问Map集合中的元素,可以根据
每项元素的key来访问其value;如果希望访问Set集合中的元素,则只能根据元素本身来访问(这是Set集合里元素不允许重复
的原因)。 

对于Set、List、Map三种集合,最常用的实现类分别是HashSet、ArrayList和HashMap三个实现类。

1 0
原创粉丝点击