包装类
基本数据类型对应的引用类型
获取Integer对象的方法
补充
在JDK5的时候提出了一个机制,自动装箱和自动拆箱
自动装箱:把基本数据类型会自动的变成的变成其对应的包装类
自动拆箱:把包装类自动的变成其对象的基本数据类型
成员方法
常见算法
查找算法
基本查找(顺序查找)
核心:从0索引开始挨个往后查找 需求:定义一个方法利用基本查找,查询某个元素是否存在
二分查找(折半查找)
二分查找改进(插值查找)
斐波那契查找
基本思想
利用黄金分割原理(斐波那契数列)分割数组,也是二分查找的改进。
总结
总结(2)
分块查找
核心思想:块内无序,块间有序
实现步骤
1.创建数组存放每一块对象信息
2.先查找确定要查找的数据属于哪一块
3.再单独遍历这一块即可
排序算法
冒泡排序
选择排序
插入排序
总结
Arrays
操作数组工具类
Lambda表达式
注意点
1.表达式可以用来简化匿名内部类的书写
2.表达式只能简化函数式接口的匿名内部类的写法
3.函数式接口:
有且仅有一个抽象方法的接口叫做函数式接口,接口上可以加@FunctionalInterface
表达式的省略写法
集合进阶
集合体系结构
List系类集合
添加的元素是有序,可重复,有索引
Set系列集合
添加的元素是无序,不重复,无索引
Collection
collection的遍历方式
迭代器,增强for,lambda表达式遍历
迭代器
迭代器不依赖索引
迭代器在java中的类是Iterator,迭代器是集合专用的遍历方式。
增强for遍历
Lambda表达式遍历
总结
List
Collection的方法List都继承了
List集合的遍历方法
迭代器遍历,列表迭代器遍历,增强for遍历,Lambda表达式遍历,普通for循环
五种遍历方式对比
数据结构
数据结构(数组)
查询速度快,删除效率低,添加效率极低
数据结构(链表)
链表查询慢,无论查询哪个数据都要重头开始。
总结
ArrayList
ArrayList集合底层原理
1.ArrayList底层是数据结构的,数据默认长度为10.
2.当数组添加加满了之后,会自动扩容为1.5倍。
LinkedList集合
泛型类,泛型方法,泛型接口
泛型深入
泛型可以在很多地方进行定义
泛型类
使用场景:当一个类中,某个变量的数据类型不确定时,就可以定义带有泛型的类
泛型接口
作用
1.实现类给出具体的类型
2.实现类延续泛型,创建实现类对象时再确定类型。
补充
泛型不具备继承性,但是数据具备继承性。
数据结构二叉树,二叉查找树,平衡二叉树
红黑树,红黑规则,添加节点处理方法详解
注:一切图片皆来自于黑马程序员网课本人自截,只用于自学。