集合框架的概述
集合框架是Java的容器类,专门用来装载对象,基本数据类型会转变为包装类。
集合框架的作用
- 在类的内部,对数据进行组织;
- 简单而快速的搜索大量的条目;
- 有的集合接口,提供一系列排序的元素,并且可以在序列中间快速的插入或者删除元素;
- 有的集合接口,提供映射关系,可以通过关键字(key)快速的查找到对应的的唯一对象,而这个关键字可以使任意类型。
集合框架和数组的对比
数组的特点:长度是固定的,只能通过下标访问元素,下标类型只能是数字型。
集合框架的特点,长度是不固定的,有的集合可以通过任意类型查找所映射的具体对象。
集合的框架体系
Java中集合类定义主要是
java.util.*
包下面,常用的集合在系统中定义了三大接口。这三类的区别是:
-
java.util.Set
接口及其子类,set提供的是一个无序的集合; -
java.util.List
接口及其子类,List提供的是一个有序的集合; -
java.util.Map
接口及其子类,Map提供了一个映射(对应)关系的集合数据结构;
数据结构对程序设计有着深远的影响,在面向过程的C语言中,数据库结构用struct来描述,而在面向对象的编程中,数据结构是用类来描述的,并且包含有对该数据结构操作的方法。
在Java语言中,Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类)。所有抽象出来的数据结构和操作(算法)统称为Java集合框架(Java Collection Framework)。
集合框架的层次结构
Collection是集合接口
Set子接口:无序,不允许重复;
List子接口:有序,可以有重复元素。
Set和List的对比
Set:检索元素效率低下,删除和插入效率高,插入和删除不会引起元素位置改变。
List:和数组类似,List可以动态增长,查找元素效率高,插入删除元素效率低,因为会引起其他元素位置改变。
Set和List具体的子类
Set
|----HashSet:以哈希表的形式存放元素,插入删除速度很快。
List
|----ArrayList:动态数组
|----LinkedList:链表、队列、堆栈。
|----Vector:一种老的动态数组,是线程同步的,效率很低,一般不赞成使用。
集合基本操作Collection(接口)
Collection是最基本的集合接口,Collection接口中声明了一些所有实现类都重写方法,我们浏览Collection中的抽象方法,就知道具体的子类的基本操作。
所有实现Collection接口的类都必须提供两个标准的构造函数:无参数的构造函数用于创建一个空的Collection,有一个Collection参数用于创建一个新的Collection,这个新的Collection与传入的Collection有相同的参数。后一个构造函数允许用户复制一个Collection。
Collection常用的方法
增加:add(),addAll(Collection e)
删除:remove(),removeAll(),clear()
查找:Iterator iterator()获取迭代器用于遍历元素
判断功能:isEmpty,contains,containAll();
常用的集合操作
- 创建集合对象
- 创建元素对象
- 添加元素
- 遍历元素
Iterator迭代器(接口)
Iterator是获取集合中元素的过程,实际上帮助获得集合中的元素,用于遍历元素。
Iterator常用的方法:
hasNext()当前游标位置后面没有元素
next()返回元素值,并且将游标向前移动
remove(Object obj)移动指定元素
总结
Java的集合框架为小伙伴们总结到这里,后面再总结集合框架中的List、Set、Map。