8. 集合
1. List
1.1 数组和集合的区别
相同点
都是容器,可以存储多个数据
不同点
数组的长度是不可变的,集合的长度是可变的
数组可以存基本数据类型和引用数据类型
集合只能存引用数据类型,如果要存基本数据类型,需要存对应的包装类
1.2 集合类体系结构
1.3 集合的使用
方法名说明
boolean add(E e) | 添加元素
boolean remove(Object o) | 从集合中移除指定的元素
boolean removeIf(Object o) | 根据条件进行移除
void clear() | 清空集合中的元素
boolean contains(Object o) | 判断集合中是否存在指定的元素
boolean isEmpty() | 判断集合是否为空
int size() | 集合的长度,也就是集合中元素的个数
1.4 Iterator迭代器, add(), hasNext(), next(), remove()
1.5 加强for循环(里面有:的)
//1,数据类型一定是集合或者数组中元素的类型
//2,str仅仅是一个变量名而已,在循环的过程中,依次表示集合或者数组中的每一个元素
//3,list就是要遍历的集合或者数组
2.2 List集合的方法
void add(int index,E element) | 在此集合中的指定位置插入指定的元素
E remove(int index) | 删除指定索引处的元素,返回被删除的元素
E set(int index,E element) | 修改指定索引处的元素,返回被修改的元素
E get(int index) | 返回指定索引处的元素
3.1-2 栈和队列, 数组和链表
- 栈结构 先进后出
- 队列结构先进先出
- 数组结构 查询快、增删慢
- 队列结构 查询慢、增删快
4.1 list集合的特点
- ArrayList 底层是数组结构实现,查询快、增删慢
- LinkedList 底层是链表结构实现,查询慢、增删快
4.2 LinkedList特有功能
public void addFirst(E e) | 在该列表开头插入指定的元素
public void addLast(E e) | 将指定的元素追加到此列表的末尾
public E getFirst() | 返回此列表中的第一个元素
public E getLast() | 返回此列表中的最后一个元素
public E removeFirst() | 从此列表中删除并返回第一个元素
public E removeLast() | 从此列表中删除并返回最后一个元素
5.1 泛型
- 好处: 1. 运行时的问题提前到了编译期间 2. 避免了强制类型转换
- 格式: <>,可以任意书写, 一般一个字母
<