Java语法糖写法

一、函数式接口

1、Function函数式接口:有一个输入参数,有一个输出

在这里插入图片描述

2、断定型接口:有一个输入参数,返回值只能是布尔值!

在这里插入图片描述

3、Consumer 消费型接口:只有输入,没有返回值

在这里插入图片描述

4、Supplier供给型接口:没有参数,只有返回值

在这里插入图片描述

二、常用的Lambda写法

1、如果model不为空,获取他的data属性,否则返回null

Optional.ofNullable(model).map(Record::getData).orElse(null);

2、遍历list,获取每一个对象的name属性,转化为list返回

.stream().map(Type::name).collect(Collectors.toList());

3、2的并行处理

.parallelStream().filter(Objects::nonNull).map(Model::getName()).collect(Collectors.toList());

4、guava创建集合

Lists.newArrayList()
Maps.newHashMap();

5、遍历apps,获取每个元素的hex属性,mapToLong转化为LongStream,最后求和,intValue向下转型为int

Long.valueOf(apps.stream().mapToLong(Type::getHex).sum()).intValue();

6、list不为空,转化为userId list,并且去重

Optional.ofNullable(repayProps).orElse(Lists.newArrayList()).stream().map(FlowProps::getUserId).distinct().collect(Collectors.toList());

7、list中获取第一个元素findFirst

.stream().filter(s -> s.getType() == fileType).findFirst().orElse(null);

8、把各个元素相加得出一个结果

.stream().reduce(BigDecimalHelper::addWithNullAsZeroAndScale).orElse(BigDecimal.ZERO)
.stream().reduce(BigDecimal.ZERO, BigDecimal::add);

9、求最小值

.stream().min(Comparator.comparing(Record::getIndex));

10、分组

.stream().collect(Collectors.groupingBy(vo -> vo.getType().name() + vo.getDate()));

11、是否有任意一个符合

Collection<String> prefixList
String userChannel
prefixList.stream().anyMatch(userChannel::startsWith);

12、抛异常

.stream().findFirst().orElseThrow(() -> new IllegalArgumentException("no available"))

13、排序

.stream().sorted(Comparator.comparingInt(VO::getTerms)).collect(Collectors.toList());

14、逆序

.stream().sorted(Comparator.comparingInt(VO::getIndex).reversed()).collect(Collectors.toList());

15、转为map

.stream().collect(Collectors.toMap(Record::getId, v -> v));

16、flatMap返回Stream,还可以继续.

.stream().flatMap(Collection::stream).filter(Objects::nonNull).collect(Collectors.toList());

17、遍历

.stream().forEach(x -> x.setCode(code));

18、计数

.stream().count();

19、逗号分隔

.collect(Collectors.joining(","));

20、去重

.distinct()

21、获取任意一个,类似findFirst

.stream().findAny().get().getOrderId();

22、如果当前值存在,传入一个Consumer

.ifPresent(info -> {System.out.println(info)});

23、如果存在值则返回true,否则返回false

.isPresent()

24、转为set

.collect(Collectors.toSet());

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/30655.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【谷歌】实用的搜索技巧

1、使用正确的谷歌网址 我们知道https://www.google.com是谷歌的网址。但根据国家,用户可能会被重定向到 google.fr(法国)或google.co.in(印度)。 最主要的URL——google.com是为美国用户准备的(或是针对全世界所有用户的唯一URL))。当你在谷歌上搜索时,了解这一点是相…

git知识域

知识体系 FAQ git clone与git pull区别 git clone&#xff1a;从无到有&#xff0c;包含分支信息&#xff0c;日志信息。 git pull&#xff1a;在已有项目基础上操作&#xff0c;针对特定分支。

【MySQL】事务二

事务二 1.数据库并发的场景2.读-写2.1 3个记录隐藏字段2.2 undo日志2.3 模拟 MVCC2.4 Read View2.5 RR 与 RC的本质区别 3.读-读4.写-写 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我…

技术支持与开发助手:Kompas AI的革新力量

一、引言 随着技术发展的迅猛进步&#xff0c;技术开发的高效需求日益增加。开发人员面临着更复杂的项目、更紧迫的时间表以及不断提高的质量标准。在这种背景下&#xff0c;能够提供智能支持的工具变得尤为重要。Kompas AI 正是在这种需求下应运而生的。它通过人工智能技术&a…

QT 中stateChanged(int)和toggled(bool)的区别

在 Qt 中&#xff0c;QCheckBox 和 QRadioButton 都继承自 QAbstractButton&#xff0c;并且它们都有一些相似的信号&#xff08;signals&#xff09;来通知当按钮状态改变时。然而&#xff0c;stateChanged(int) 和 toggled(bool) 这两个信号在 QCheckBox 和 QRadioButton&…

【金融安全新防线:黑龙江等保测评在金融行业安全强化中的关键作用】

在数字化时代&#xff0c;金融行业作为国家经济的命脉&#xff0c;承载着巨大的资金流动与敏感信息处理任务&#xff0c;其信息安全的重要性不言而喻。面对日益复杂的网络威胁环境&#xff0c;黑龙江省内的金融企业正以前所未有的力度加强信息安全防护体系&#xff0c;其中&…

Linux find命令的使用

find 命令用于在指定目录下查找文件和目录。可以按照需要添加过滤条件。 列出当前目录及其子目录中的所有文件&#xff1a; find . -type f 查找当前目录下名为 test.java 的文件&#xff1a; find . -name test.java 查找 frameworks 目录下名称以 ActivityManager 开头的 ja…

【轨迹规划论文整理(1)】UAV轨迹规划的开山之作Minimum Snap Trajectory

【轨迹规划论文整理(1)】UAV轨迹规划的开山之作Minimum Snap Trajectory Generation and Control for Quadrotors 本系列主要是对精读的一些关于无人机、无人车的轨迹搜索论文的整理&#xff0c;包括了论文所拓展的其他一些算法的改进思路。 这是本系列的第一篇文章&#xff0…

Acrel-2000ES储能能量管理系统方案

应用场合 电池厂商、储能集成商等厂家所生产的储能一体柜能集成箱

TPS、QPS、CPS、PV和UV

TPS &#xff08;Transaction Per Second&#xff09;每秒事务处理量 QPS &#xff08;Query Per Second&#xff09;每秒查询率 PV&#xff08;Page View&#xff09;页面浏览量 UV&#xff08;Unique Visitor&#xff09;独立访客数 TPS 概念 TPS&#xff1a;是Transacti…

关于微信/支付宝先享后付小程序开发

微信和支付宝的先享后付小程序开发涉及到多个步骤和环节。以下是针对这两个平台的小程序开发流程的概述&#xff1a; 微信支付先享后付小程序开发 申请接入先享卡流程&#xff1a; 参照微信官方文档地址&#xff08;如&#xff1a;https://pay.weixin.qq.com/wiki/doc/apiv3/…

CTF-pwn-虚拟化-【d3ctf-2021-d3dev】

文章目录 参考流程附件检查启动信息逆向分析漏洞查看设备配置信息exp 参考 https://x1ng.top/2021/11/26/qemu-pwn/ https://bbs.kanxue.com/thread-275216.htm#msg_header_h1_0 https://xz.aliyun.com/t/6562?time__1311n4%2BxnD0DRDBAi%3DGkDgiDlhjmYh2xuCllx7whD&alic…

1-函数极限与连续

1 2 平方项没有考虑到&#xff08;其正负&#xff09;

scratch编程03-反弹球

这篇文章和上一篇文章《scratch3编程02-使用克隆来编写小游戏》类似&#xff08;已经完全掌握了克隆的可以忽略这篇文章&#xff09;&#xff0c;两篇文章都使用到了克隆来编写一个小游戏&#xff0c;这篇文章与上篇文章不同的是&#xff0c;本体在进行克隆操作时&#xff0c;不…

游戏遇到攻击有什么办法能解决?

随着网络技术的飞速发展&#xff0c;游戏行业在迎来繁荣的同时&#xff0c;也面临着日益严峻的网络威胁。黑客攻击、数据泄露、DDoS攻击等安全事件频发&#xff0c;给游戏服务器带来了极大的挑战。面对愈演愈烈的网络威胁&#xff0c;寻找一个能解决游戏行业攻击问题的安全解决…

Python酷库之旅-比翼双飞情侣库(17)

目录 一、xlwt库的由来 1、背景和需求 2、项目启动 3、功能特点 4、版本兼容性 5、与其他库的关系 6、示例和应用 7、发展历史 二、xlwt库优缺点 1、优点 1-1、简单易用 1-2、功能丰富 1-3、兼容旧版Excel 1-4、社区支持 1-5、稳定性 2、缺点 2-1、不支持.xls…

在Ubuntu中创建Ruby on Rails项目并搭建数据库

新建Rails项目 先安装bundle Ruby gem依赖项工具&#xff1a; sudo apt install bundle 安装Node.js: sudo apt install nodejs 安装npm 包管理器&#xff1a; sudo apt install npm 安装yarn JavaScript包管理工具&#xff1a; sudo apt install yarn 安装webpacker: …

OpenCV--图像色彩空间及转换

图像色彩空间及转换 python代码和笔记 python代码和笔记 import cv2 色彩空间&#xff0c;基础&#xff1a;RGB或BGR OpenCV中&#xff1a; 一、HSV(HSB)&#xff1a;用的最多&#xff0c; Hue&#xff1a;色相-色彩(0-360)&#xff0c;红色&#xff1a;0&#xff0c;绿色&…

详解 ClickHouse 的数据类型

官方文档&#xff1a;https://clickhouse.yandex/docs/zh/data_types/ 一、整型 使用场景&#xff1a; 个数、数量、也可以存储整型 id 整型类比 Java 类型长度Int8byte1byte 有符号整数&#xff0c;[-128 : 127]Int16short2byte 有符号整数&#xff0c;[-32768 : 32767]Int32i…

ssh配置免密登录服务器

1. Windows客户机生成.pub文件 # Windows ssh-keygen -t rsa # <username>/.ssh/*.pub2. 复制pub文件到服务器 # Windows # 假设远程主机名为example.com&#xff0c;用户名为user scp id_rsa.pub <user><example.com>:~/3. 服务器将.pub文件标记为authori…