java阶段性总结2(下)

0 阅读3分钟

包装类

基本数据类型对应的引用类型 微信图片_20260210132459_149_26.jpg

获取Integer对象的方法

微信图片_20260210132753_150_26.jpg

补充

在JDK5的时候提出了一个机制,自动装箱和自动拆箱

自动装箱:把基本数据类型会自动的变成的变成其对应的包装类

自动拆箱:把包装类自动的变成其对象的基本数据类型

微信图片_20260210133351_151_26.jpg

成员方法

微信图片_20260210133652_152_26.jpg

常见算法

查找算法

基本查找(顺序查找)

核心:从0索引开始挨个往后查找 需求:定义一个方法利用基本查找,查询某个元素是否存在

二分查找(折半查找)

微信图片_20260210135414_153_26.jpg

二分查找改进(插值查找)

微信图片_20260210135737_155_26.jpg

斐波那契查找

基本思想

利用黄金分割原理(斐波那契数列)分割数组,也是二分查找的改进。

总结

微信图片_20260210135602_154_26.jpg

总结(2)

微信图片_20260210140001_156_26.jpg

微信图片_20260210140210_157_26.jpg

分块查找

核心思想:块内无序,块间有序

实现步骤

1.创建数组存放每一块对象信息

2.先查找确定要查找的数据属于哪一块

3.再单独遍历这一块即可

微信图片_20260210140852_160_26.jpg

微信图片_20260210140851_159_26.jpg

排序算法

冒泡排序

微信图片_20260210155244_161_26.jpg

选择排序

微信图片_20260210155307_162_26.jpg

插入排序

微信图片_20260210155547_163_26.jpg

总结

微信图片_20260210155817_164_26.jpg

Arrays

操作数组工具类

微信图片_20260210165344_166_26.jpg

Lambda表达式

微信图片_20260210174537_167_26.jpg

微信图片_20260210174538_168_26.jpg

注意点

1.表达式可以用来简化匿名内部类的书写

2.表达式只能简化函数式接口的匿名内部类的写法

3.函数式接口:

有且仅有一个抽象方法的接口叫做函数式接口,接口上可以加@FunctionalInterface

微信图片_20260210175353_169_26.jpg

表达式的省略写法

微信图片_20260210175527_170_26.jpg

集合进阶

集合体系结构

微信图片_20260210175739_171_26.jpg

微信图片_20260210180017_172_26.jpg

List系类集合

添加的元素是有序,可重复,有索引

Set系列集合

添加的元素是无序,不重复,无索引

Collection

微信图片_20260210180324_173_26.jpg

collection的遍历方式

迭代器,增强for,lambda表达式遍历

迭代器

迭代器不依赖索引

迭代器在java中的类是Iterator,迭代器是集合专用的遍历方式。

微信图片_20260210182307_174_26.jpg

微信图片_20260210182414_175_26.jpg

微信图片_20260210182632_176_26.jpg

增强for遍历

微信图片_20260210190600_177_26.jpg

Lambda表达式遍历

微信图片_20260210192237_178_26.jpg

总结

微信图片_20260210192541_179_26.jpg

List

Collection的方法List都继承了

微信图片_20260210192758_180_26.jpg

List集合的遍历方法

迭代器遍历,列表迭代器遍历,增强for遍历,Lambda表达式遍历,普通for循环

五种遍历方式对比

微信图片_20260210194101_181_26.jpg

数据结构

微信图片_20260210194352_182_26.jpg

微信图片_20260210195756_183_26.jpg

数据结构(数组)

查询速度快,删除效率低,添加效率极低

数据结构(链表)

链表查询慢,无论查询哪个数据都要重头开始。

总结

微信图片_20260210200538_184_26.jpg

微信图片_20260223150910_675_1.jpg

ArrayList

ArrayList集合底层原理

1.ArrayList底层是数据结构的,数据默认长度为10.

2.当数组添加加满了之后,会自动扩容为1.5倍。

微信图片_20260223151330_676_1.jpg

微信图片_20260223151621_677_1.jpg

LinkedList集合

微信图片_20260223151936_678_1.jpg

微信图片_20260223152550_680_1.jpg

泛型类,泛型方法,泛型接口

泛型深入

微信图片_20260223152920_681_1.jpg

微信图片_20260223153205_682_1.jpg 泛型可以在很多地方进行定义

泛型类

使用场景:当一个类中,某个变量的数据类型不确定时,就可以定义带有泛型的类 微信图片_20260223153659_683_1.jpg

泛型接口

微信图片_20260223153915_684_1.jpg

作用

1.实现类给出具体的类型

2.实现类延续泛型,创建实现类对象时再确定类型。

补充

泛型不具备继承性,但是数据具备继承性。

数据结构二叉树,二叉查找树,平衡二叉树

微信图片_20260223161032_686_1.jpg

微信图片_20260223161511_689_1.jpg

微信图片_20260223161510_688_1.jpg

微信图片_20260223161510_687_1.jpg

微信图片_20260223161726_690_1.jpg

红黑树,红黑规则,添加节点处理方法详解

微信图片_20260223161727_691_1.jpg

注:一切图片皆来自于黑马程序员网课本人自截,只用于自学。