一、Collection接口
-->单列集合(共享给大家)
.add();把给定的对象添加到当前集合中
clear();清空集合中所有的元素
remove();把给定的对象在当前集合中删除
contains();判断当前集合中是否包含给定的对象
isEmpty();判断当前集合是否为空
size();返回集合中元素的个数/集合的长度
1)List
-->有序可重复有索引
add();在此集合中的指定位置插入指定的元素
remove();删除指定索引处的元素,返回被删除的元素
set();修改指定索引处的元素,返回被修改的元素
get();返回指定索引处的元素
1.ArrayList
-->用Lis和Collection的方法
Vector 与ArrayList相同只是安全性和效率问题,ArrayList效率高但是不 安全。
没有特殊方法
2.Linklist
addFirst();在该列表开头插入指定的元素
addLast();将指定的元素追加到此列表的末尾
getFirst();返回此列表中的第一个元素
getLast();返回列表中的最好一个元素
removeFirst();从此列表中删除并返回第一个元素
removeLast();从此列表中删除并返回最后一个元素
2)Set
-->无序不重复无索引 -->不能使用普通for遍历
1.HashSet
-->该集合存储自定义类型元素,要想实现元素的唯一,要求必须重写hashCode方法和equals方法
2.TreeSet
TreeSet();//根据其元素的自然排序进行排序
TreeSet(Comparator comparator):根据指定的比较器进行排序
3)总体关系图
4)五种遍历方式的使用场景
1.迭代器遍历:在遍历过程中需要删除元素
2.列表迭代器:在遍历过程中需要添加元素
3.增强for循环:仅遍历
4.Lambda表达式:仅遍历
5.普通for循环:如果遍历的时候想操作索引,可以用普通for循环
二、Map
-->双列集合
.put();添加元素
.remove();删除键值对
clear();移除所有的键值对元素
containsKey();判断集合是否包含指定的键
containValue();判断集合是否包含指定的值
isEmpty();判断集合是否为空
size();集合的长度,也就是集合中键值对的个数
1)HashMap
-->用Map的方法
-->依赖hashCode方法和equals方法包装键的唯一
-->如果键存储的是自定义对象,需要重写hashCode和equals方法
-->如果值存储自定义对象,不需要重写hashCode和equals方法
2)TreeMap
-->无索引,不重复,可排序(默认对键进行升序,可以重写方法该降序)
Comparable接口,指定比较规则。
创建集合时传递Comparator比较器对象,指定比较规则。
Collections工具类
Collections不是集合,而是集合的工具类
Collection<T> c,T.....elements 批量添加元素
shuffle(List<?> list) 打乱List集合元素的顺序