java--集合、数据结构、泛型

java--study

  • 集合
    • 集合的体系特点
    • Collection的常用方法
    • 集合的遍历方式
      • 方式一:迭代器
      • 方式二:foreach/增强for循环
      • 方式三:lambda表达式
    • 集合存储自定义类型的对象
    • 常见数据结构
      • 数据结构概述、栈、队列
      • 数组
      • 链表
      • 二叉树、 二叉查找树
      • 平衡二叉树
      • 红黑树
    • List系列集合
      • List集合特点、特有API
      • List集合的遍历方式小结
      • ArrayList集合的底层原理
      • LinkedList集合的底层原理
        • 队列
    • 补充知识:集合的并发修改异常问题
    • 补充知识:泛型深入
      • 泛型的概述和优势
      • 自定义泛型类
      • 自定义泛型方法
      • 自定义泛型接口
      • 泛型通配符、上下限

集合

java--集合、数据结构、泛型_第1张图片在这里插入图片描述1、数组和集合的元素存储的个数问题。
数组定义后类型确定,长度固定
集合类型可以不固定,大小是可变的。
2、数组和集合存储元素的类型问题。
数组可以存储基本类型和引用类型的数据。
集合只能存储引用数据类型的数据。
3、数组和集合适合的场景
数组适合做数据个数和类型确定的场景。
集合适合做数据个数不确定,且要做增删元素的场景。

集合的体系特点

java--集合、数据结构、泛型_第2张图片java--集合、数据结构、泛型_第3张图片java--集合、数据结构、泛型_第4张图片
1、集合的代表是?
Collection接口。
2、Collection集合分了哪2大常用的集合体系?
List系列集合:添加的元素是有序、可重复、有索引。
Set系列集合:添加的元素是无序、不重复、无索引。
3、如何约定集合存储数据的类型,需要注意什么?
集合支持泛型。
集合和泛型不支持基本类型,只支持引用数据类型。

Collection的常用方法

java--集合、数据结构、泛型_第5张图片

集合的遍历方式

方式一:迭代器

java--集合、数据结构、泛型_第6张图片java--集合、数据结构、泛型_第7张图片java--集合、数据结构、泛型_第8张图片
java--集合、数据结构、泛型_第9张图片
1、迭代器的默认位置在哪里。
Iterator iterator():得到迭代器对象,默认指向当前集合的索引0

2、迭代器如果取元素越界会出现什么问题。
会出现NoSuchElementException异常。

方式二:foreach/增强for循环

java--集合、数据结构、泛型_第10张图片java--集合、数据结构、泛型_第11张图片
java--集合、数据结构、泛型_第12张图片

方式三:lambda表达式

java--集合、数据结构、泛型_第13张图片

集合存储自定义类型的对象

java--集合、数据结构、泛型_第14张图片

1、集合中存储的是元素的什么信息?
集合中存储的是元素对象的地址。

常见数据结构

数据结构概述、栈、队列

数据结构是计算机底层存储、组织数据的方式。是指数据相互之间是以什么方式排列在一起的。
通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率

java--集合、数据结构、泛型_第15张图片java--集合、数据结构、泛型_第16张图片

数组

java--集合、数据结构、泛型_第17张图片

链表

java--集合、数据结构、泛型_第18张图片
java--集合、数据结构、泛型_第19张图片java--集合、数据结构、泛型_第20张图片

二叉树、 二叉查找树

java--集合、数据结构、泛型_第21张图片java--集合、数据结构、泛型_第22张图片

java--集合、数据结构、泛型_第23张图片

平衡二叉树

java--集合、数据结构、泛型_第24张图片

红黑树

java--集合、数据结构、泛型_第25张图片
java--集合、数据结构、泛型_第26张图片java--集合、数据结构、泛型_第27张图片

List系列集合

java--集合、数据结构、泛型_第28张图片

List集合特点、特有API

List系列集合特点
ArrayList、LinekdList :有序,可重复,有索引。
有序:存储和取出的元素顺序一致
有索引:可以通过索引操作元素
可重复:存储的元素可以重复
java--集合、数据结构、泛型_第29张图片
java--集合、数据结构、泛型_第30张图片

List集合的遍历方式小结

List集合的遍历方式有几种?
迭代器
增强for循环
Lambda表达式
for循环(因为List集合存在索引)
java--集合、数据结构、泛型_第31张图片

ArrayList集合的底层原理

java--集合、数据结构、泛型_第32张图片

LinkedList集合的底层原理

java--集合、数据结构、泛型_第33张图片

java--集合、数据结构、泛型_第34张图片

队列

java--集合、数据结构、泛型_第35张图片
java--集合、数据结构、泛型_第36张图片

补充知识:集合的并发修改异常问题

java--集合、数据结构、泛型_第37张图片java--集合、数据结构、泛型_第38张图片

foreach遍历删除bug
java--集合、数据结构、泛型_第39张图片java--集合、数据结构、泛型_第40张图片
java--集合、数据结构、泛型_第41张图片
java--集合、数据结构、泛型_第42张图片

补充知识:泛型深入

泛型的概述和优势

泛型:是JDK5中引入的特性,可以在编译阶段约束操作的数据类型,并进行检查。
泛型的格式:<数据类型>; 注意:泛型只能支持引用数据类型。
集合体系的全部接口和实现类都是支持泛型的使用的。
泛型的好处:
统一数据类型。
把运行时期的问题提前到了编译期间,避免了强制类型转换可能出现的异常,因为编译阶段类型就能确定下来。
java--集合、数据结构、泛型_第43张图片

自定义泛型类

定义类时同时定义了泛型的类就是泛型类。
泛型类的格式:修饰符 class 类名<泛型变量>{ }
java--集合、数据结构、泛型_第44张图片java--集合、数据结构、泛型_第45张图片

自定义泛型方法

java--集合、数据结构、泛型_第46张图片java--集合、数据结构、泛型_第47张图片

自定义泛型接口

泛型接口可以约束实现类,实现类可以在实现接口的时候传入自己操作的数据类型这样重写的方法都将是针对于该类型的操作。

java--集合、数据结构、泛型_第48张图片

java--集合、数据结构、泛型_第49张图片
java--集合、数据结构、泛型_第50张图片

泛型通配符、上下限

java--集合、数据结构、泛型_第51张图片在这里插入图片描述

你可能感兴趣的:(java,java,数据结构,链表)