List集合特点:
- 可重复
- 有序(存取顺序相同)
应用:
List list = new ArryList();
使用集合步骤:
1.创建集合对象
2.创建元素对象
3.将元素对象添加到集合对象
4.遍历集合
增强for循环的遍历:
for(数据类型 变量名 : 数组或集合对象){
循环体//变量,即元素
}
快捷方式:iter+Enter
*增强for循环底层依赖的是迭代器(Iterator)
迭代器
概述:对过程的重复,成为迭代;
迭代器是遍历Collection集合的通用方式;
常用方法:
- E next();
- boolean hasNext();
使用步骤:
- 根据集合对象获取其对应的迭代器对象;
- 判断迭代器中是否有元素;
- 如果有,就获取元素
*普通迭代器在遍历不能添加、删除元素,列表迭代器可以
泛型简介
泛指任意类型,又叫参数化类型
对具体类型的使用起到辅助作用,类似于方法的参数
演示:
List<String> list = new ArrayList()<>;
好处:
- 类型安全
- 避免了类型转换
Collections工具类
- sort(List)
- max(Collection)
- reverse(List) 反转
- shuffle(List) 随机置换
Set集合
特点:
- 不可重复
- 无序
应用:`
Set<T> set = new HashSet()<>;
*为什么Set集合没有"去重”?
因为Set集合保证元素的唯一性依赖: equals() 和hashCode()两个方法。
你没有在实体类中重写这两个方法.默认调用的是Object类中的这两个方法.
而Object类中的equals()方法默认比较的是地址值是否相同
解决方案:
在实体类中重写equals()和hashCode()方法
Map结合
特点:
双列集合,元素又键值(Entry)对构成;
key–value
key不可以重复,value可以重复
应用:
Map<T1,T2> map = new HashMap<>();
不同于单列集合添加元素的add(),双列集合的添加方式为put();
遍历方式:
- 获取所用的Key:keySet()
- 遍历keySet,通过key获取value:get()
- 遍历keySet的方法:iterator()