集合

任务

1.概念
	1.1 集合的概念
	1.2 集合的框架结果介绍
	1.3 集合和数组的对比
2.Collection接口
	2.1 Collections中常用的方法
3.泛型
	3.1 什么是泛型
	3.2 泛型的声明
	3.3 说明
	3.4 泛型使用时的注意事项
	3.5 受限泛型
	3.6 泛型应用在集合上
4.Iterator迭代器
	4.1 迭代器的工作原理
	4.2 迭代器的使用
5.List接口
	5.1 List接口的存储特点
	5.2 List接口的实现类

目标

1.掌握集合的概念以及和数组的对比
2.了解集合的框架
3.了解Collection接口中的常用方法
4.了解泛型的使用及注意事项
5.掌握Iterator的工作原理以及使用
6.掌握List接口的存储特点
7.掌握ArrayList的使用
8.了解LinkedList、Vector和Stack的使用

第一节 概念

1.1 集合的概念
集合与数组一样,也是一个容器,与数组不同的是,集合的长度不定,可以无限的想集合中添加元素,而且集合中存储的元素类型可以随意
1.2 集合的框架结构介绍

Collection集合的框架结构

Collection集合

Map集合的框架结构

Map集合

1.3 集合与数组的对比

相同点:

都是数据的容器,在一个数组或集合中可以声明(存储)多个数据

不同点:

元素:数组中的元素只能是相同(相兼容类型)
	集合中的元素是任意的(泛型)

数组中可以存储基本类型和引用类型,集合只能存储引用类型

长度(元素个数):
	数组是定长的,一旦初始化长度就不可以修改
	集合长度可以修改,可以删除元素和添加元素

第二节 Collection接口

2.1 Collection中常用的方法
方法名描述
add(E e)确保此 collection 包含指定的元素(可选操作)。
addAll(Collection<? extends E> c)将指定 collection 中的所有元素都添加到此 collection 中(可选操作)。
clear()移除此 collection 中的所有元素(可选操作)。
contains(Object o)如果此 collection 包含指定的元素,则返回true。
containsAll(Collection<?> c)如果此 collection 包含指定 collection 中的所有元素,则返回 true。
equals(Object o)比较此 collection 与指定对象是否相等。
isEmpty()如果此 collection 不包含元素,则返回true。
iterator()返回在此 collection 的元素上进行迭代的迭代器。
remove(Object o)从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)。
removeAll(Collection<?> c)移除此 collection 中那些也包含在指定 collection 中的所有元素(可选操作)。
retainAll(Collection<?> c)仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作)。
size()返回此 collection 中的元素数。
toArray()返回包含此 collection 中所有元素的数组。

第三节 泛型

3.1 什么是泛型
 
3.2 泛型的声明
 
3.3 说明
 
3.4 泛型使用时的注意事项
 
3.5 受限泛型
 
3.6 泛型应用在集合上
 

第四节 Iterator迭代器

4.1 迭代器的工作原理
迭代器相当于一个游标,最初获取迭代器时,迭代器的位置在所有元素的前面,每迭代一个元素,迭代器向后移动一个位置

迭代器

4.2 迭代器的使用
方法名描述
hasNext()判断迭代器是否存在下一个元素可以迭代器
next()迭代器迭代下一个元素
remove()从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。

第五节 List接口

方法名描述
add(int index, E element)在列表的指定位置插入指定元素(可选操作)。
addAll(int index, Collection<? extends E> c)将指定 collection 中的所有元素都插入到列表中的指定位置(可选操作)。
containsAll(Collection<?> c)如果列表包含指定 collection 的所有元素,则返回true。
get(int index)返回列表中指定位置的元素。
indexOf(Object o)返回此列表中第一次出现的指定元素的索引;如果此列表不包含该元素,则返回 -1。
lastIndexOf(Object o)返回此列表中最后出现的指定元素的索引;如果列表不包含此元素,则返回 -1。
listIterator()返回此列表元素的列表迭代器(按适当顺序)。
remove(int index)移除列表中指定位置的元素(可选操作)。
set(int index, E element)用指定元素替换列表中指定位置的元素(可选操作)。
subList(int fromIndex, int toIndex)返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之间的部分视图。
5.1 List接口的存储特点
相对有序存储,可以存储相同元素(不排重),可以通过下标访问集合元素
List接口中可以使用独有的迭代器ListIterator,具有反向遍历的功能
5.2 List接口的实现类

5.2.1 ArrayList类

 

代码实现:

 

5.2.2 LinkedList类

 

5.2.3 Vector

 

5.2.4 Stack

 

5.2.5 ArrayList与LinkedList,Vector三种实现类存储的比较

 

总结

课前默写

 

作业

设计一个联系人类,完成一个对联系人增删改查的操作流程,所有的联系人信息存储在ArrayList集合中

面试题

1.ArrayList与LinkedList的区别
2.Stack的存储特点是什么