一.lambda
作用:
简化匿名内部类的书写
前提:
面向函数式接口-->有且有一个抽象方法的接口我们称为函数式结果, 可以通过@FunctionalInterface校验
格式:
(抽象方法的参数列表)->{
抽象方法的方法体;
}
简化:
①参数的数据类型可以省略
②参数只有一个的时候()可以省略
③方法体一行语句的时候{}可以省略, 但是{}一旦省略return和;都要省略
快捷键:alt+enter可以快速生成
二.方法引用
作用:
当我们对函数式接口的方法进行重写时,发现某些地方已经有我们需要的方法体了, 我们可以将其引用过来
1.引用普通方法: 对象::普通方法名
2.引用静态方法: 类名::静态方法名
3.引用实例方法: 类名::普通方法名
<1>将抽象方法的第一个参数作为调用者, 其他剩下的参数作为第一个方法参数方法的参数传入的时候才能使用
4.引用构造方法 构造方法名::new
<1>必须返回值必须是类, 抽象方法的参数列表必须和要引用构造完全吻合, 才能引用
三.Arrays问题
二分查找法
1.作用:提高查找的效率
2.前提:数组必须有顺序才行
3.原理:类似折半查找, 不断中间索引的元素和要查找的元素比较, 不断修正左右边界索引
4.排序比较的遇到小数的问题该如何解决?
java提供Comparator默认返回的int类型的比较结果, 此时如果有小数需要比较的话, 我们如果强转int就会将小数的忽略, 没有办法达到排序效果, 可以借助 Double.compare(小数1, 小数2);得到+1或者-1或者0的结果