2025/10/20 包装类 二分查找/折半查找 插值查找 斐波那契查找 分块查找 冒泡排序 选择排序 插入排序 快速排序 (递归算法) 常见算法的API(Arrays) Lambda表达式及其省略
为什么要学习包装类?
包装类:基本数据类型对应的引用类型

包装类

获取Integer对象的方式(JDK5以前)


这两种方式获取对象的区别(掌握):
在实际开发中,-128~127之间的数据用的比较多,如果每次使用都是new对象,那么太浪费内存了,所以,提前把这个范围内的每一个数据都创建好了对象,如果用到了不会创建新的,而是返回已经创建好了的对象

对象之间是不能直接计算的
步骤:1、把对象进行拆箱,变成基本数据类型;2、相加;3、把得到的结果再次进行装箱(JDK5以前)

Integer成员方法

因为是static,所以用类名.方法名,直接调用

强类型语言:每种数据在java中都有各自的数据类型,在计算的时候,如果不是同一种数据类型,是无法直接计算的

注意:1)在类型转换的时候,括号中的参数只能是数字不能是其他,否则代码会报错;
2)8种包装类种,除了Character都有对应的parseXxxx的方法进行类型转换


统一使用nextline,然后再使用parseXxxx进行类型转换
常见算法(查找算法):基本查找、二分查找/折半查找、分块查找、插值查找、斐波那契查找、数表查找、哈希查找
基本查找:从0索引挨个往后查找
![]()
二分查找/折半查找
前提条件:数组中的数据必须是有序的
核心逻辑:每次排除一半的范围
1、min和max表示当前要查找的范围
2、mid是在min和max的中间
3、如果要查找的元素在mid的左边,缩小范围时,min不变,max等于mid减1
4、如果要查找的元素在mid的右边,缩小范围时,max不变,min等于mid加1

调用方法:
二分查找总结

二分查找改进----插值查找(适用于数值分布比较均匀时)

二分查找改进---斐波那契查找

分块查找

冒泡排序:

外循环:表示要执行多少轮,如果有n个数据,那么执行n-1轮

选择排序
![]()


插入排序


递归算法:方法中调用方法本身的现象
递归一定要有出口,否则就会出现内存溢出
作用:![]()

递归求和:1-100


递归求阶乘:5!
![]()

方法内部再次调用方法的时候,参数必须更加靠近出口


快速排序
![]()


利用递归重复上述内容:

递归的出口:

注意:不能先移动start再移动end
排序方法总结

常见算法的API:Arrays




val填充覆盖原来的数值
sort
![]()



Lambda表达式
简化匿名内部类的书写:

面向对象:先找对象,再让对象去做事情
函数式编程:是一种思想特点,忽略面向对象的复杂语法,强调做什么,而不是谁去做,Lambda表达式就是函数式编程的思想
lambda表达式的标准格式



总结

Lambda表达式的省略写法


练习



更多推荐
所有评论(0)