https://blog.51cto.com/9241485/2056649
https://www.jianshu.com/p/cc71a285879f
一、回顾数组
- 容量固定
- 类型一致
- 顺序
- 不唯一
二、集合框架
1.Collection
- 容量不固定(具有伸缩性)
- 一致 Object 泛型
- 无序
- 不唯一
1)List Collection的子接口
- 容量不固定(具有伸缩性)
- 一致 Object 泛型
- 有序
- 不唯一
——实现类
(1)ArrayList 类数组集合 Object 操作效率较高 线程不安全
- add(要添加的元素); 新增元素到集合存储空间中
- add(下标位置,要添加的元素 ); 插入式新增
- addAll(集合); 将参数中集合的所有数据全部批量新增到目标集合中
- addAll(下标位置,要出入的集合);
- get(下标); 根据下标获取集合中的对应元素
- set(下标位置,替换的新元素); 修改目标位置的元素
- remove(下标/对象)删除集合中的一个元素
- removeAll(集合); 删除两个集合中一致的所有元素
- 清空集合 clear();
- size(); 返回集合现有的元素个数
(2)LinkedList 链表集合
该集合存储的原理决定了 它非常适合处理频繁插入 和 删除的操作
该实现类拥有特殊的方法
- addFirst(元素);
- addLast(元素);
- removeFirst();
- removeLast();
- getFirst();
- getLast();
(3)Vector 类数组集合 操作效率较低 线程安全
2)Set Collection的子接口 可以被 Map接口取代
- 容量不固定(具有伸缩性)
- 一致 Object 泛型
- 无序
- 唯一
——实现类
- HashSet
- TreeSet
2.Map接口 键值对集合接口
——实现类
1)HashMap 必须掌握
- put(键,值); 将一组键值对存放到键值对集合中 如果键不存在 产生新增效果 如果键存在 进行修改值操作
- keySet(); 用于获取键值对集合中的键集合 该集合是Set集合
- values(); 用于获取键值对集合中的值集合 该集合是Collection
- containsKey(键); 在键值对集合中查找目标键是否已经存在 返回布尔值
- get(键); 以键取值
- remove(键); 根据键删除键值对 返回被删除的值 如果返回null代表没有找要删除的键值对
键值对集合的遍历
a)迭代器
创建 Iterator<泛型> it=集合.iterator(); 不能使用new关键字实例化迭代对象 必须选择集合来生成 生成的迭代器对象只服务于该集合
判断 迭代器对象.hasNext(); 返回布尔
使用 迭代器对象.next();
b)foreach循环
for(迭代变量类型 名称 : 集合或数组){
//循环过程中不得进行任何影响集合或数组结构的操作
//增 删 和对对象地址的修改
}