1.Arrays类
Arrays类包含用于操作数组的各种方法(如排序和搜索)。该类没有构造函数,直接使用类名.方法名()
的方法调用需要的方法。
常用方法
方法 | 作用 |
---|---|
public static String toString(数组) | 把数组拼接成一个字符串 |
public static int binarySearch(数组, 查找的元素) | 二分查找法查找元素 |
public static int[] copyOf(原数组, 新数组长度) | 拷贝数组 |
public static int[] copyOfRange(原数组, 起始索引, 结束索引) | 拷贝数组(指定范围,包头不包尾) |
public static void fill(数组, 元素) | 用指定元素填充数组 |
public static void sort(数组) | 按照默认方式(升序)进行数组排序 |
public static void sort(数组, 排序规则) | 按照指定的规则排序 |
sort方法示例
/*
* public static void sort(数组, 排序规则)
* 该方法只能给引用数据类型的数组排序
* 底层:利用二分查找+插入排序进行排序
* */
Integer[] arr = {2, 3, 1, 5, 6, 7, 8, 4, 9};
Arrays.sort(arr, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1 - o2; // o1 - o2为升序,o2 - o1为降序
}
});
System.out.println(Arrays.toString(arr));
2.Lambda表达式
2.1 函数式编程
函数式编程(Functional Programing)是一种思想特点。
对比:
- 面向对象编程:先找对象,让对象做事情,强调谁去做。
- 函数式编程:忽略面向对象的复杂语法,强调做什么,而不是谁去做。
2.2 Lambda表达式
Lambda表达式是JDK8新增的一种语法形式。用于简化匿名内部类的写法。
示例:
// 原句:
Arrays.sort(arr, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1 - o2;
}
});
// Lambda表达式简化后:
Arrays.sort(arr, (Integer o1, Integer o2) -> {
return o1 - o2;
}
);
注意:
Lambda表达式只能简化函数式接口的匿名内部类的写法。
函数式接口:有且仅有一个抽象方法的接口,可在接口上方加
@FunctionalInterface
注解验证。
2.3 Lambda表达式的省略写法
省略核心:可推导,可省略。
省略规则:
- 参数类型可以省略不写。
- 如果只有一个参数,参数类型可以省略,同时小括号括号也可以省略。
- 如果方法体只有一行,大括号、return、分号可以省略(同时省略)。
示例1:
// 原句:
Arrays.sort(arr, (Integer o1, Integer o2) -> {
return o1 - o2;
}
);
// 省略写法:
Arrays.sort(arr, (o1, o2) -> o1 - o2);
示例2:
// 原句:
fun((Integer i) -> {
System.out.println(1);
}
);
// 省略写法:
fun(i -> System.out.println(1));
标签:省略,Java,14,笔记,public,数组,Integer,o2,o1
From: https://www.cnblogs.com/kuaicode/p/17281388.html