您的位置:首页 > 编程语言 > Java开发

Java集合概述

2015-11-29 12:53 507 查看
集合类和数组不一样,数组元素既可以是基本类型的值,也可以是对象(实际上保存的是对象的引用变量);而集合只能保存
对象(实际上也是对象的引用变量,但习惯上认为集合里保存的是对象)。
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三个实现类。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: