一、单列集合顶层Collection
- List系列集合:添加的元素是有序、可重复、有索引
- Set系列集合:添加的元素是无序、不重复、无索引
Collection是单列集合的祖宗接口,它的功能是全部单列集合都可以继承使用的。
Collection的遍历方式
1、迭代器——迭代器不依赖索引
迭代器遍历
迭代器在Java中的类是Iterator,迭代器是集合专用的遍历方式
细节注意点:
1,报错NoSuchElementException2,迭代器遍历完毕,指针不会复位
3,循环中只能用一次next方法
4,迭代器遍历时,不能用集合的方法进行增加或者删除
2、增强for
- 增强for的底层就是迭代器,为了简化迭代器的代码书写的。
- 修改增强for中的变量,不会改变集合中原本的数据。
增强for遍历
- 增强for的底层就是迭代器,为了简化迭代器的代码书写的。
- 它是JDK5之后出现的,其内部原理就是一个Iterator迭代器
- 所有的单列集合和数组才能用增强for进行遍历。
3、Lambda表达式
Lambda表达式的遍历
二、List中常见的方法和五种遍历方式
1、List集合的特点
- 有序:存和取的元素顺序一致
- 有索引:可以通过索引操作元素
- 可重复:存储的元素可以重复
1、List集合的特有方法
- Collection的方法List都继承了
- List集合因为有索引,所以多了很多索引操作的方法。
2、List系列集合中的两个删除方法
2、List集合的五种遍历方式及五种遍历方式对比
1、迭代器遍历
2、列表迭代器遍历
3、增强for遍历
4、Lambda表达式遍历
5、普通for循环(因为List集合存在索引)
三、数据结构(栈、队列、数组、链表)
1、数据结构概述
数据结构是计算机底层存储、组织数据的方式。
是指数据相互之间是以什么方式排列在一起的。
数据结构是为了更加方便的管理和使用数据,需要结合具体的业务场景来进行选择。
一般情况下,精心选择的数据结构可以带来更高的运行或者存储效率。
问题:1.每种数据结构长什么样子?
2.如何添加数据?
3.如何删除数据?
2.常见的数据结构
①栈 ②队列 ③数组 ④链表 ⑤二叉树 ⑥二叉查找树 ⑦平衡二叉树 ⑧红黑树
1、数据结构(队列和栈小结)
2、数据结构(数据)
数组是一种查询快,增删慢的模型
- 查询速度快:查询数据通过地址值和索引定位,查询任意数据耗时相同。(元素在内存中是连续存储的)
- 删除效率低:要将原始数据删除,同时后面每个数据前移。
- 添加效率极低:添加位置后的每个数据后移,再添加元素。
3、数据结构(链表)
3、ArrayList集合底层原理
4、LinkedList集合
- 底层数据结构是双链表,查询慢,增删快,但是如果操作的是首尾元素,速度也是极快的。
- LinkedList本身多了很多直接操作首尾元素的特有API。
5、LinkedList和迭代器的源码分析