当前位置: 首页 > news >正文

java后端开发day30--常见算法(二)-------Arrayslambda

在这里插入图片描述
(以下内容全部来自上述课程)

1.Arrays

操作数组的工具类。
请添加图片描述
细节:

  • copyOf:新长度<老长度----部分拷贝,新长度=老长度----完全拷贝,新长度>老长度----会补上默认初始值
  • copyOfRange:包头不包尾,包左不包右
  • sort1:给基本数据类型进升序排列
    底层原理:快速排序
  • sort2:给引用数组类型进行排序,基本需变包装类
    底层原理:插入排序+二分查找

2.Lambda表达式

简化代码
请添加图片描述

1.函数式编程

一种思想特点。
忽略面向对象的复杂语法,强调做什么,而不是谁去做。
Lambda表达式就是函数思想的体现。
请添加图片描述

2.标准格式

Lambda表达式是JDK8开始后的一种新语法形式。

()->{}

  • ()对应着方法的形参
  • ->固定格式
  • {}对应着方法的方法体

注意点:

  • Lambda表达式可以用来简化匿名内部类的书写。
  • Lambda表达式只能简化函数式接口的匿名内部类的写法。
  • 函数式接口:
    有且仅有一个抽象方法的接口叫做函数式接口,接口上方可以加@FunctionalInterface注解。
package Lambda;

public class LambdaDemo1 {
    public static void main(String[] args) {
        //1.利用匿名内部类的形式去调用下面的方法
        //调用一个方法的时候,如果方法的形参是一个接口,那么我们传递这个接口的实现类对象
        //如果实现类对象只要用到一次,就可以使用匿名内部类的形式书写
        method(new Swim(){
            @Override
            public void swimming() {
                System.out.println("我在游泳");
            }
        });

        //2.利用Lambda表达式的形式去调用下面的方法
        //Lambda表达式的格式:
        //(参数列表) -> {方法体}
        //如果方法的形参列表只有一个参数,那么小括号可以省略
        //如果方法的方法体只有一行代码,那么大括号可以省略
        //如果方法的方法体只有一行代码,并且这行代码是一个输出语句,那么大括号和输出语句都可以省略
        method(()->{
            System.out.println("我在游泳");
        });
    }
    public static void method(Swim s){
        s.swimming();
    }
}
interface Swim{
public abstract void swimming();

    }

3.省略写法

核心:可推导可省略。

省略规则:

  1. 参数类型可以不写
  2. 如果只有一个参数,参数类型可以省略,同时()也可以省略
  3. 如果lambda表达式的方法体只有一行,大括号,分号,return可以省略不写,需要同时省略。
package Lambda;

import java.util.Arrays;
import java.util.Comparator;

public class LambdaDemo2 {
    public static void main(String[] args) {
        Integer[] arr = {2,3,1,5,6,7,4,8,9};

        // 匿名内部类的形式
        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简化格式
        // 如果方法的形参列表只有一个参数,那么小括号可以省略
        // 如果方法的方法体只有一行代码,那么大括号可以省略
        // 如果方法的方法体只有一行代码,并且这行代码是一个输出语句,那么大括号和输出语句都可以省略
        Arrays.sort(arr,(o1,o2)->o1 - o2);

        System.out.println(Arrays.toString(arr));
    }
}

相关文章:

  • 每日一练之合并两个有序链表
  • 【0基础学Python】基础语法Part1
  • Next.js Server Action 提交 vs 前端 Fetch 提交:核心区别与优劣分析
  • 降级选型啊
  • 【向量模型】 开源通用向量模型BGE (BAAI General Embedding)
  • 英文字体:现代复古美学精致细节浓缩式衬线排版logo标题艺术字体 La Luxes Serif
  • 网络安全高级软件编程技术 网络安全 软件开发
  • 蓝桥杯备赛日记【day1】(c++赛道)
  • 解决VScode 连接不上问题
  • OpenWrt 源码目录分析与最终文件系统分析
  • CSS Web安全字体
  • Jump( 2015-2016 ACM-ICPC Northeastern European Regional Contest (NEERC 15). )
  • Autosar技术栈总目录
  • 系统安全阶段练习真题(高软44)
  • 基于DeepSeek与搜索引擎构建智能搜索摘要工具
  • c++:迭代器的失效
  • 星舰(Starship)近地轨道运力极限分析
  • 电路常用常用的定理/定律/计算方法
  • 【开源免费】基于SpringBoot+Vue.JS青年公寓服务平台(JAVA毕业设计)
  • 安装树莓派3B+环境(嵌入式开发)
  • 上海做网站建设公司排名/2023年8月份新冠症状
  • 优美女人女性网站模版/手机百度app免费下载
  • 英文网站怎么设置中文/湖南长沙今日疫情
  • 5000元做网站值么/百度小说
  • 哪个行业最需要做网站/搜索排名优化公司
  • 外贸网站违反谷歌规则/上海网站建设公司排名