API~Arrays
import java.util.Arrays;
import java.util.Comparator;
public class test1 {
public static void main(String[] args) {
int[] arr={1,2,3,4,5,6,7,8,9,0};
Arrays.toString(arr);//变成数组[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
//二分查找
//必须是升序
//如果存在返回索引,如果不存在返回(-插入点-1)
Arrays.binarySearch(arr, 10);//-11
//拷贝数组
//如果新数组长度小于老数组就部分拷贝,大于多出默认初始化0
Arrays.copyOf(arr,10);
//拷贝数组(指定范围)
//包头不包尾
Arrays.copyOfRange(arr,0,5);
//填充数组(把值全部改成一样的数)
Arrays.fill(arr,100);//全部改成100
//排序
//给基本数据类型排序底层用快速排序,默认升序
int[] arr1={2,5,6,7,3,6,17,65};
Arrays.sort(arr1);
//Arrays.sort(数组,规则);
//只能给引用数据类型排序,基本数据类型要变成包装类
//第二个参数是个接口,所以我们要传实现类对象,只需要用一次的话就用匿名内部类
Integer[] arr2={5,7,2,3,9,10,15,20};
Arrays.sort(arr2, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2-o1;//降序
}
});
}
}
Lambda表达式
可以用来简化接口匿名内部类(只能是接口的 )
只能简化函数式接口的匿名内部类
(函数式接口就是只有一个方法,可以用@FunctionInterface注释)
lambda的省略规则
1.参数类型可以省略不写
2..如果只有一个参数,参数类型省略,()也可以省略
3.如果方法体只有一行,大括号,分号,return可以不写,必须同时省略。
Integer[] arr2={5,7,2,3,9,10,15,20};
Arrays.sort(arr2, (o1, o2)-> o2-o1);//降序