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三个实现类。
对象(实际上也是对象的引用变量,但习惯上认为集合里保存的是对象)。
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三个实现类。
相关文章推荐
- Java中的多态(polymorphism)和动态绑定(dynamic binding)
- Java-泛型
- java继承深入解析
- Java-文件操作与随机访问文件
- 将Android studio 项目导入eclipse的学习过程
- Java 字节流
- Java 集合框架
- Java进阶之路
- Java- Hibernate 多对一关系映射
- acm2028
- Java-Hibernate - EJB 注解映射
- Java- Hibernate 简介
- java 浅析I/O模型
- Java- Hibernate 多对多关系映射
- java常量传播优化
- 设计原则(四)依赖倒置原则(DIP)
- Eclipse使用android.support.v7.widget.RecyclerView出现 java.lang.reflect.InvocationTargetException
- Spring中的单例一二
- Java-Hibernate - HQL 查询
- Java-Hibernate简单增删改查