Java中的集合框架概述
集合概述
集合的概念
现实生活中:很多的事物凑在一起
数学的集合:具有共同属性的事物的集体
Java中的集合类:是一种工具类,就是容器,储存任意数量的具有共同属性的对象
集合的作用
- 在类的内部,对数据进行组织;
- 简单而快速的搜索大数量的条目;
- 有的集合接口,提供了一系列排列有序的元素,并且可以在序列中间快速的插入或者删除有关元素;
- 有的集合接口,提供了映射关系,可以通过关键字(key)去快速查找到对应的唯一对象,而这个关键字可以是任意类型。
与数组的对比——为何选择集合而不是数组
- 数组的长度是固定的。集合的长度或者说是容量是可以动态扩展的。
- 数组只能通过下标访问元素,类型固定,而有的集合可以通过任意类型查找所映射的具体对象。
Java集合框架体系结构
Collection接口和Map接口
List、Queue和Set是三个子接口
ArrayList、LinkedList、HashSet和HashMap都是实现类。
Collection可以比作单身宿舍;Map中存储的是一对对的夫妇,都是成对出现的。
ArrayList、HashSet和HashMap是使用频率最高的三个实现类。
Collection接口 & List 接口简介
Collection接口、子接口以及实现类
Collection接口
- 是List、Set和Queue接口的父接口
- 定义了可用于操作List、Set和Queue的方法——增删改查
具体api参考JDK中的api文档。
List接口及其实现类——ArrayList
- List是元素有序并且可以重复的集合,被称为序列
- List可以精确的控制每个元素的插入位置,或删除某个位置元素
- ArrayList——数组序列,是List的一个重要实现类
- ArrayList底层是由数组实现的
Map & HashMap简介
Map接口
- Map提供了一种映射关系,其中的元素是以键值对(key-value)的形式存储的,能够实现根据key快速查找alue
- Map中的键值对以Entry类型的对象实例形式存在
- 键(key值)不可重复,value值可以
- Map支持泛型,形式如:Map<K, V>
HashMap类
- HashMap是Map的一个重要实现类,也是最常用的,基于哈希表实现
- HashMap中的Entry对象是无须排列的
- Key值和alue值都可以为null,但是一个HashMap只能有一个key值为null的映射(key值不可重复)
Collections工具类
是Java集合框架中,用来操作集合对象的工具类
也是Java集合框架的成员
sort()(排序)方法
Comparable和Comparator
Comparable接口——可比较的
- 实现该接口表示:这个类的实例可以比较大小,可以进行自然排序
- 定义了默认的比较规则
- 其实现类需实现compareTo()方法
- compareTo()方法返回正数表示大,负数表示小,0表示相等
Comparator接口——比较工具接口
- 用于定义临时比较规则,而不是默认比较规则
- 其实现类需要compare()方法
- Comparator和Comparable都是Java集合框架的成员