Java学习笔记14

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));
posted @   KuaiCode  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示