JDK lambda表达式

JDK8特性(Lambda表达式+StreamAPI简单示例代码) JDK8特性(Lambda表达式+StreamAPI的简单使用示例代码) 立即下载

JDK lambda表达式

基本使用方法

1. 无参,如定义一个线程,可以简写为

 new Thread(() -> System.out.print("运行")).start();

2. 有参数

Collections.sort(list, (o1, o2) -> return o1.compareTo(o2));

3. 类型改变 && 方法调用

public class Demo {
    
    @Test
    public void test02() {
        List<Integer> intList = new ArrayList<>();
        intList.add(1);
        intList.add(2);
        intList.add(3);
        intList.add(4);

        // List<Integer>转List<String>
        List<String> stringList = intList.stream().map(x -> String.valueOf(x)).collect(Collectors.toList());
        
        // 调用打印
        stringList.forEach(System.out::println);     
    }
  }

4. List转Map

public class Demo {
    @Test
    public void test03() {
        List<Integer> intList = new ArrayList<>();
        intList.add(1);
        intList.add(2);
        intList.add(3);
        intList.add(4);

        Map<Integer, String> stringMap = intList.stream().collect(Collectors.toMap(x -> x, x -> "数据为:" + String.valueOf(x)));

        stringMap.entrySet().forEach(x-> System.out.println(x.getKey() + "\t" + x.getValue()));
    }
}

5. Filter

public class Demo {
    @Test
    public void test03() {
        List<Integer> intList = new ArrayList<>();
        intList.add(1);
        intList.add(2);
        intList.add(3);
        intList.add(4);

        // 过滤,只要大于2的数据
        Map<Integer, String> stringMap = intList.stream().filter(x -> x > 2 ).collect(Collectors.toMap(x -> x, x -> "数据为:" + String.valueOf(x)));

        stringMap.entrySet().forEach(x-> System.out.println(x.getKey() + "\t" + x.getValue()));
    }
}

6. groupBy

import org.junit.Test;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * @description:
 * @author: pp_lan
 * @date: 2021/8/27 7:37
 */
public class DemoTest {

    @Test
    public void test04() {
        List<User> userList = new ArrayList<>();
        userList.add(new User(1, "力宏"));
        userList.add(new User(2, "张力"));
        userList.add(new User(1, "虚仓"));
        userList.add(new User(3, "君太"));

        // 根据groupId分组
        Map<Integer, List<User>> collect = userList.stream().collect(Collectors.groupingBy(x -> x.getGroupId()));

        collect.entrySet().forEach(x -> System.out.println("组: " + x.getKey() + "\t成员:" + x.getValue()));
    }

    public class User {
        private Integer groupId;

        private String name;

        public User(Integer id, String name) {
            this.groupId = id;
            this.name = name;
        }

        public Integer getGroupId() {
            return groupId;
        }

        public void setGroupId(Integer groupId) {
            this.groupId = groupId;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        @Override
        public String toString() {
            return "User{" +
                    "groupId=" + groupId +
                    ", name='" + name + '\'' +
                    '}';
        }
    }
}

7. Predicate

public class DemoTest {
    
    @Test
    public void test05() {
        List<Integer> intList = new ArrayList<>();
        intList.add(1);
        intList.add(2);
        intList.add(3);
        intList.add(4);

        // 偶数
        Predicate<Integer> predicate = (n) -> n % 2 == 0;

        intList.forEach(x -> {
            if(predicate.test(x)) {
                System.out.println("偶数:" + x);
            }
        });
    }
}

8. @FunctionalInterface

public class DemoTest {
    @Test
    public void test06() {
        List<Worker> workers = new ArrayList<>();
        workers.add(()-> {
            System.out.println("打工1");
        });
        workers.add(()-> {
            System.out.println("打工2");
        });
        workers.add(()-> {
            System.out.println("打工3");
        });

        workers.forEach(Worker::work);
    }

    @FunctionalInterface
    public interface Worker {

        /**
         * 工作
         */
        void work();
    }
}
时频分析之STFT:短时傅里叶变换的原理与代码实现(非调用Matlab API) STFT function [STFT, f, t] = mystft(x, win, hop, nfft, fs) % function: [STFT, f, t] = stft(x, win, hop, nfft, fs) % % Input: % x - signal in the time domain % win - analysis window function % hop - hop size % nfft - numb 阅读详情

相关推荐

VI恒流源原理详细分析(0~10V转0/4~20mA)

但是此电阻也不能无限增加,首先我们所列方程均是基于运放虚短虚断的假设,此假设又是基于运放输入阻抗无穷大,输出阻抗无穷小的前提条件,然而实际的运放并非理想运放,对于TL082IDR这款运放,其Rid(Common-mode input resistance)典型值为1TΩ,以此来看感觉1MΩ确实还不是很大,但是还有另一个影响因素需要考虑,那就是电路的抗干扰能力,原则上,电阻越大受到外部干扰的可能性越大。也就是实现Uin 0~10V变化时对应Iout 0~20mA的一个线性对应关系。

IOTBOT的博客 2902

JDK新语法 之 Lambda表达式

最近JDK13都出来了,所以想沉下心来,总结一下JDK的一系列新语法。这个模块将抽空慢慢填充完整。 这一章就先写下Lambda表达式吧。下面我会以代码的形式进行表达 一、Lambda表达式语法 /** 一、函数式接口:即接口类中只有一个方法,如compareInterface 二、lambda表达式的基础语法:引入了一个新的操作符 “->” 箭头左侧: 参数列表--即函数式接口方法中的参...

有一个小阿飞 344

Python爬虫实战:从巨潮资讯网高效获取结构化JSON数据

在数据采集与处理领域,网络爬虫是实现自动化信息获取的核心技术。其基本原理是通过模拟浏览器行为,向目标服务器发送HTTP请求并解析响应内容,从而提取所需数据。相较于传统的网页解析,直接获取结构化数据(如JSON格式)能极大提升数据处理的效率与准确性,避免了复杂的HTML解析或PDF文本提取过程。这一技术价值在金融数据分析、市场研究、舆情监控等场景中尤为突出,能够快速构建高质量的数据集。本文以Python爬虫为例,聚焦于从巨潮资讯网这类官方信息披露平台,精准定位并抓取JSON格式的上市公司年报数据,详细阐述了接

weixin_29243279的博客 1420

关于JDK1.7和JDK1.8lambda表达式和匿名内部类的笔记

匿名内部类与lambda表达式 匿名内部类, 简言之,是指没有名称的java类,它可以通过继承父类或者实现接口来进行编程。   通常我们这么去操作:   父类/接口   对象名称=new  父类/接口(){     继承父类的方法或者实现接口的方法   } lambda表达式,简言之,是JDK1.8的新特性,是从匿名内部类发展而来的。我们可以理解它就是函数式接口的实例。 下面我写...

FrackPider的博客 1273

Android双目摄像头(RGB+IR)实时预览与人脸活体检测实战指南

本文详细介绍了Android双目摄像头(RGB+IR)实时预览与人脸活体检测的实战指南。通过双摄同步预览、人脸检测与活体判断等技术实现,提升安全认证的准确性和鲁棒性。文章还提供了开发环境搭建、常见问题解决方案及性能优化建议,帮助开发者快速掌握双目摄像头在Android平台的应用。

vulkan6gpu的博客 700

STM32 A/B分区OTA升级实战:从原理到避坑指南

本文详细解析STM32 A/B分区OTA升级的核心原理与实战实现,涵盖双分区设计、Bootloader开发、固件传输验证及常见问题解决方案。重点介绍通过A/B分区实现无缝升级与安全回滚的机制,帮助开发者规避典型陷阱,提升嵌入式系统远程更新的可靠性与效率。

qqq44的博客 1109

Java Lambda表达式

Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。 Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。 使用 Lambda 表达式可以使代码变的更加简洁紧凑。 语法 lambda 表达式的语法格式如下: (parameters) -> expression 或 (parameters) ->{ statements; } 以下是lam...

qq_37707826的博客 433

S32K344 Flash Driver实战:手把手教你实现任意字节写入与扇区解锁(含C40_Ip避坑指南)

本文深入解析S32K344微控制器的Flash驱动开发,重点解决C40_Ip驱动库的8字节对齐限制和扇区保护锁问题。通过实战案例和代码示例,详细介绍了如何实现任意字节写入、扇区解锁及性能优化策略,为Bootloader和OTA升级等应用提供可靠解决方案。

weixin_33713707的博客 432

JDK8新特性之Lambda表达式

我们知道使用Lambda表达式的前提是需要有函数式接口,而Lambda表达式使用时不关心接口名,抽象方法名。只关心抽象方法的参数列表和返回值类型。因此为了让我们使用Lambda表达式更加的方便,在JDK中提供了大量常用的函数式接口. 大多数无需自己再定义函数式接口,而可以直接使用jdk内置的函数式接口。Lambda表达式的语法是非常简洁的,但是Lambda表达式不是随便使用的,使用时有几个条件要特别注意。必须覆盖重写抽象的run方法,所有的方法名称,方法参数,方法返回值不得不都重写一遍,而且不能出错,

cch970812的博客 802

机器学习实战7-基于机器学习算法预测相亲成功率

大家好,我是微学AI,今天给大家介绍一下机器学习实战7-基于机器学习算法预测相亲成功率,随着社会的发展,大家都忙于事业,对自己的终身大事就耽搁了,相亲是一种传统的寻找伴侣的方式,随着时代的发展,相亲的方式也在不断地改变。在这个过程中,了解相亲双方的信息以及预测相亲是否成功变得越来越重要。本文将介绍如何使用随机森林算法对相亲成功进行预测,通过分析男女双方的房子、车子、长相、家庭条件、父母情况、生活习惯、学历、性格、兴趣等因素,来预测相亲是否成功。

微学AI的博客 3035

基于YOLOv10的建筑图纸物体检测系统:从数据集构建到UI界面实现

高度结构化的图形元素标准化的符号和标注系统多层次的细节表达精确的尺寸和位置关系。

YOLO 390

02-JDK新特性-Lambda表达式

Lambda表达式是一个匿名代码块,用于简单的传递一段代码片段。

丨Anna丨的博客 1303

Vue3 - 详细实现调用浏览器摄像头拍照并生成图片预览,支持将抓拍的图像保存到用户本地或上传到服务器、调取前置摄像头和后置摄像头,开启摄像头并进行拍照,vue实现调用摄像头,电脑或手机调用摄像头拍照

vue3,nuxt3,摄像头,vue3网站打开摄像头拍照,vue3项目调用摄像头实现拍照功能,拍照后怎么保存,照相后上传到后端服务器,开启摄像头黑屏,如何默认后置摄像头,网页开启电脑摄像头并照相,前置拍照,vue3如何调用手机摄像头进行拍摄,拒绝权限后不再弹出了,微信公众号网页,摄像头报错,拍照左右镜像反了,浏览器不兼容怎么办,vue3调用电脑端摄像头实时拍照,解决调用摄像头权限无法弹出,打不开摄像头,Vue3如何调用手机的摄像头,调用本地摄像头实现拍照,浏览器不弹摄像头权限了,如何不使用https运行测试

🏆 前端领域优质创作者 8654

JDK1.8 Lambda表达式

系列文章目录 第一章 JDK1.8 Lambda表达式 文章目录系列文章目录前言一、Lambda表达式是什么?二、重要特征三、语法1.如果代码无法在一个表达式中完成,可以像写方法一样把代码放在大括号中。只有一行代码的Lambda表达式也可以使用大括号2.没有参数时,也要提供一个空的小括号。如果只有一个参数,而且这个参数的类型可以推导,也可以省略小括号,Lambda表达式也可以包含多个参数1.只有一个抽象方法的函数式接口总结 前言 有一说一,Lambda表达式是JDK1.8的最大亮点,使用它设计的代码会

月七 2626

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Lambda表达式性能优化:JDK 17和JDK 21中Lambda如何提升性能与可读性?

Lambda表达式是JDK 8引入的核心特性,让代码更加简洁优雅。但随着Java版本的演进,JDK 17和JDK 21对Lambda的底层机制进行了优化,使性能和可读性更上一层楼。本篇文章,猫头虎将带你详细解析: Lambda在JDK 17和JDK 21中的性能优化原理 如何在实际开发中提升Lambda表达式的性能? 图示与实战代码,让你更清晰掌握Lambda的升级! 掌握Lambda优化,让你的代码既高效又易读!

猫头虎技术团队:授渔优于赠鱼,兴趣引领智慧,探索之乐尤显珍贵。商务合作+:Libin9iOak ,万粉变现+:优快云WF,猫头虎承诺每年免费为100名C站创作者做账号流量诊断服务!全网搜:猫头虎技术团队,点击文章底部名片或直接私信我一切皆可谈,快找虎哥! 2524

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Lambda表达式与函数式接口:什么是Lambda表达式?如何在JDK 8中实现匿名函数?

在JDK 8之前,写匿名类非常繁琐,代码冗长,特别是用来实现简单的功能时。JDK 8引入了Lambda表达式和函数式接口,让Java代码更加简洁、灵活。在本篇文章中,猫头虎将详细解析: 什么是Lambda表达式? 什么是函数式接口? 如何在JDK 8中使用Lambda表达式实现匿名函数? 掌握Lambda表达式,让你的代码简洁优雅,开发效率倍增!🚀

猫头虎技术团队:授渔优于赠鱼,兴趣引领智慧,探索之乐尤显珍贵。商务合作+:Libin9iOak ,万粉变现+:优快云WF,猫头虎承诺每年免费为100名C站创作者做账号流量诊断服务!全网搜:猫头虎技术团队,点击文章底部名片或直接私信我一切皆可谈,快找虎哥! 3147

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

JDK 8的新特性-Lambda表达式 精品文章总结

文章目录一. 前言1.2 认识Lambda表达式二. Lambda 表达式的格式2.1 语法格式一: 无参数,无返回值,Lambda体只有一条语句2.2 语法格式二: 有一个参数,并且无返回值2.3 语法格式三: 有两个以上的参数,并且有返回值,并且Lambda体有多条语句2.4 若Lambda体中只有一条语句,`return`和大括号`{}`都可以省略2.5 Lambda表达式的参数列表数据类型可以省略不写,因为JVM编译器通过上下文推断出,数据类型,即:"类型推断"三. 函数式接口3.1 什么是函数式接

博客简介 3072

JDK8新特性二:jdk8之Lambda表达式

JDK8新特性二:jdk8之Lambda表达式 文章目录JDK8新特性二:jdk8之Lambda表达式函数式编程和Lambda表达式jdk8之前和jdk8之后线程创建的对比Lambda的使用场景Lambda表达式自定义Lambda接口编程 函数式编程和Lambda表达式 函数式编程:可以理解为将一个函数作为参数值进行传递。 面向对象是对数据的抽象,即:各种各样的pojo类。函数式编程则是对行为的...

公子&小白的博客 518

JDK8 lambda 表达式的使用

JDK8的重要新特性之一——Lambda表达式 JDK 8 之前,java不支持函数式编程的。函数编程,即可理解是将一个函数(也称为“行为”)作为一个参数进行传递。通常我们提及得更多的是面向对象编程,面向对象编程是对数据的抽象(各种各样的POJO类),而函数式编程则是对行为的抽象(将行为作为一个参数进行传递)。在JavaScript中这是很常见的一个语法特性,但在Java中将一个函数作为参数传递...

qq_16183731的博客 336

JDK8新特性——Lambda表达式

Lambda表达式不是Java最早使用的,很多语言就支持Lambda表达式,例如:C++,C#,Python,Scala等。如果有Python或者Javascript的语言基础,对理解Lambda表达式有很大帮助,可以这么说lambda表达式其实就是实现SAM接口的语法糖,使得Java也算是支持函数式编程的语言。Lambda写的好可以极大的减少代码冗余,同时可读性也好过冗长的匿名内部类。 1、Lambda表达式引入 示例1:Runnable实现线程 public void test1(){ new T

vlucky_long的博客 557

JDK8的新特性——Lambda表达式

JDK8已经发布快4年的时间了,现在来谈它的新特性显得略微的有点“不合时宜”。尽管JDK8已不再“新”,但它的重要特性之一——Lambda表达式依然是不被大部分开发者所熟练运用,甚至不被开发者所熟知。   国内的开发环境大家都知道,有各种的老项目,有各种各样的发布风险,让公司以及项目组对新的技术往往望而却步,有公司甚至时至今日还在使用JDK6来进行项目开发,这导致了在很多技术的选择上受到了很大限...

Hebbb. 339

JDK8的 特性 Lambda表达式

JDK8的 特性 Lambda表达式

weixin_57763462的博客 223

jdk8_lambda表达式

Lambda表达式 突然发现项目中有些代码不认识了,了解才知道这是jdk8的新语法,开始学习之旅吧 一、介绍 Lanbda表达式类似于匿名函数,允许一个函数作为以另外一个函数的参数,将函数作为参数进行传递,操作符:-> ...

Burnup_110的博客 219

JDK8新特性快速入门之lambda表达式

JDK8新特性快速入门之lambda表达式 ​ JDK8新特性: ​ 1、速度更快(JVM空间、数据结构的变化)、 ​ 2、代码更少(Lambda表达式使得代码更加简洁化)、 ​ 3、强大的Stream API、便于并行、最大化减少空指针异常 Optional容器类) ​ 废话少说,往下看代码演示 ​ 需求:根据员工的 工资/年龄 来选择输出员工信息 //创建一个员工类 public class Employee { private String name; private int age; pr

学而时习 861

3-1 JDK8 Lambda表达式

3-1 JDK8 Lambda表达式 什么是 Lambda 表达式?在JDK8之前,Java是不支持函数式编程的,所谓的函数编程,即可理解是将一个函数(也称为“行为”)作为一个参数进行传递,面向对象编程是对数据的抽象(各种各样的POJO类),而函数式编程则是对行为的抽象(将行为作为一个参数进行传递) 与传统方式的对比 1)、新建线程传统方式: public class Main { public static void main(String[] args) { new Thre

weixin_44368487的博客 132

JDK8--Lambda表达式

JDK8--Lambda表达式 1.什么是Lambda表达式 Lambda表达式实质上是一个可传递的代码块,Lambda又称为闭包或者匿名函数,是函数式编程语法,让方法可以像普通参数一样传递 2.Lambda表达式语法 (参数列表) -> {执行代码块} 参数列表可以为空()->{} 可以加类型声明比如(String para1, int para2) -> {ret...

LTY_Sun的博客 430
上一篇: Kafka-流量控制(Consumer上线、下线 && ConsumerRebalanceListener)
下一篇: git代码 外网to内网
pp_lan
博客等级 码龄10年 419粉丝 130原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值