1.集合与数组的区别
数组和集合相比,数组的缺点是它长度是固定的,没有办法动态扩展。而集合的长度是没有限制的,可以动态扩展。
2.手动一个可变的容器(集合)
2.1创建一个可变的容器
2.2测试类
3.List接口及其实现类
特点:List集合是有序集合: 数据的添加和存储次序一致。
- List集合可以存储重复的数据
- List集合中的数据可以通过下标访问
3.1ArrayList实现类
3.1.1添加元素
3.1.2添加多个元素
3.1.3查询集合长度
3.1.4添加元素,后面的元素往后移
3.1.5删除元素
3.1.6根据下标寻找元素
3.1.7修改元素
3.1.8判断元素是否在集合中
3.1.9 查找元素在集合中第一次的位置
3.1.10判断集合是否为空
3.1.11清空集合
3.1.12用for each遍历集合
3.2LinkedList实现类
在List的特征上添加了头部尾部的添加删除获取。
3.2.1添加元素头部尾部的添加
3.2.2删除头部尾部元素
3.2.3获取头部尾部元素
4.Set接口及其实现类
Set接口是无序的。Set接口中的数据不允许重复。Set接口无法通过下标访问数据。查找慢,插入删除快(底层数据结构是哈希表和红黑树)。Set集合使用equals()和hashCode()方法实现元素去重。
4.1HashSet实现类
4.1.1添加元素
4.1.2添加多个元素
4.1.3删除元素
4.1.4清空集合
4.1.5判断集合是否为空
4.1.6查询集合的长度
4.1.7判断元素是否在集合中
4.1.8for each遍历集合
4.1.9迭代器遍历
4.2TreeSet实现类
4.2.1测试TreeSet
4.2.2TreeSet对元素进行排序
4.2.3自定义一个类,实现接口Comparator接口,覆盖其compare方法
4.2.4TreeSet对元素的测试类
5.Map接口及其实现类
Map接口特点:以键值对方式存储数据(Collection是单值集合)。键不能重复,键重复时,后面的数据会覆盖前面的数据。可以存储null。键值对数据无序。
5.1HashMap实现类
5.1.1添加元素map.put(key,value)里的k如果相同就会覆盖
5.1.2添加多个元素
5.1.3添加元素
5.1.4删除指定key的值
5.1.5清空集合中的元素
5.1.6判断集合中是否有key的值
5.1.7获取集合中对应key的值
5.1.8获取集合中key的值
5.1.9使用for each遍历集合
6.泛型
6.1String类型的泛型
6.2泛型类
6.2.1定义一个Point类
6.2.2测试泛型类