一、Collection集合概述和使用
1.Collection集合概述
- 是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素
- JDK不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现
2.创建Collection集合的对象
- 多态的方式
- 具体实现ArrayList
3.Collection集合常用方法
方法名 | 说明 |
boolean add(E e) | 添加元素 |
boolean remove(Object o) | 从集合中移除指定元素 |
void clear() | 清空结合中的元素 |
boolean contains(Object o) | 判断集合中是否存在指定元素 |
boolean isEmpty() | 判断集合是否为空 |
int size() | 集合的长度,也就是集合中元素的个数 |
二、List集合
1.List集合概述
- 有序集合(也称为序列),用户可以精确控制列表中每个元素的插入位置。用户可以通过整数索引访问元素,并搜索列表中的元素。
- 与set集合不同,列表通常允许重复的元素
2.List集合特点
- 有序:储存和取出的元素顺序一致
- 可重复:存储元素可以重复
3.List集合特有方法
方法名 | 说明 |
void add(int index,E element) | 在此集合中的指位置插入指定的元素 |
E remove(int index) | 删除指定索引处的元素,返回被删除的元素 |
E set(int index,E element) | 修改指定索引处的元素,返回被修改的元素 |
E get(int index) | 返回指定索引处的元素 |
三、列表迭代器
1.ListIterator:列表迭代器
- 用于允许程序员沿任意方向遍历列表,在迭代期间修改列表,并获取列表中迭代器的当前位置。
- 通过List集合listIterator()方法得到,所以说他是List集合特有的迭代器
2.ListIterator中的常用方法
- E next():返回迭代中的下一个元素
- boolean hasNext():如果迭代具有更多元素,则返回true
- E previous():返回列表中的上一个元素
- boolean hasPrevious():如果此列表迭代器在相反方向遍历列表时具有更多元素,则返回true
- void add(E e):将指定的元素插入列表
四、增强for循环
1.目的
简化数组和Collection集合的遍历
- 实现Iterable接口的类允许其对象成为增强型for语句目标
- 他是JDK5之后出现的,其内部原理是一个Iterator迭代器
2.增强for的格式
- 格式:
- for(元素数据类型变量名:数组或者Collection集合){
- //在此处使用变量即可,该变量就是元素
- }
- 范例:
- int[] arr ={1,2,3,4,5};
- for(int i:arr){
- System.out.println(i);
- }
四、数据结构
数据结构是计算机存储,组织数据的方式。是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。
1.常见数据结构之栈
数据进入栈模型的过程称为:压/进栈
数据离开栈模型的过程称为:弹/出栈
栈是一种数据先进后出的模型
进栈顺序:A-B-C-D
出栈顺序:D-C-B-A
2.常见数据结构之队列
数据从后端进入队列模型的过程称为:入队列
数据从前端离开队列模型的过程称为:出队列
队列是一种数据先进先出的模型
入队列的顺序:A-B-C-D
出队列的顺序:A-B-C-D
3.常见的数据结构之数组
数组是一种查询快,增删慢是模型,查询数据通过索引定位,查询任意数据耗时相同,查询效率高。删除数据时,要将原有数据删除,同时后面每个数据前移,删除效率降低。添加数据时,添加位置后的每个数据后移,在添加元素,添加效率极低。
4.常见数据结构之链表
总结:
链表是一种增删快的模型(对比数组)
链表是一种查询慢的模型(对比数组)
五、List集合子类的特点
List集合常用子类:ArrayList , LinkedList
- ArrayList:底层数据结构是数组,查询快,增删慢
- LinkedList:底层结构是链表,查询慢,增删快
六、LinkedLiat集合的特有功能
方法名 | 说明 |
public void addFirst(E e) | 在该表开头插入指定元素 |
public void addLast(E e) | 将指定元素追加到此列表的末尾 |
public E getFirst() | 返回此列表中的第一个元素 |
public E getLast() | 返回此列表的最后一个元素 |
public E removeFirst() | 从此列表中删除并返回第一个元素 |
public E removeLast() | 从此列表中删除并返回最后一个元素 |