Java语法糖写法

news2024/9/17 9:11:06

一、函数式接口

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.coloradmin.cn/o/1840875.html

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

相关文章

电影美学复古胶片特效视频转场模板 | Premiere Pro 项目工程文件

这个Premiere Pro项目工程文件是一个电影美学胶片特效视频转场模板&#xff0c;每个过渡效果都散发出一种有机的怀旧魅力&#xff0c;让人回忆起经典电影卷轴和模拟摄影的独特美感。 项目特点&#xff1a; 胶片烧伤过渡效果&#xff1a;包括从微妙的闪烁到大胆的爆发&#xff…

Redis 主从同步

主从同步 很多企业没有使用Redis的集群&#xff0c;但是至少都做了主从。有了主从&#xff0c;当master挂掉的时候&#xff0c;运维让从库过来接管&#xff0c;服务就可以继续&#xff0c;否则master需要经过数据恢复和重启的过程&#xff0c;可能会拖很长时间&#xff0c;影响…

Ubuntu 24.04安装zabbix7.0.0图形中文乱码

当zabbix安装完成后&#xff0c;设置中文界面时&#xff0c;打开图形&#xff0c;中文内容会显示方框乱码&#xff0c;是因为服务器字体中没有相关的中文字体&#xff0c;需要更换。 1、找到中文字体&#xff0c;可以在网络上下载《得意黑》开源字体&#xff0c;也可以在windo…

AI人工智能产品经理,就该这么学!

前言 想入行AI人工智能产品经理&#xff0c;该如何学习呢&#xff1f; 随时AI的兴起&#xff0c;AI产品经理开始爆火&#xff0c;很多功能性产品经理想转行做AI产品经理。转行的原因&#xff0c;这个仁者见仁智者见智。唯一的共同点就是&#xff0c;大家都看好AI行业的发展前景…

【Spine学习14】之 人物死亡动作 思路总结

其实大致过程跟攻击那个流程一样了 没什么特别的 就只是K帧不一样&#xff1a; 记录一下&#xff0c;姿势参考就好 0s还是跟攻击一样的站立姿势 10s帧 22s帧 40s帧 不同的是把角色倒地时间延长了许多 这样看起来更合适一点 剑和盾在人物死亡的时候或脱离手心 移动开一些距离…

【Linux安装Conda环境的详细教程】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

XTR115的一些感悟

今天花了些时间看了下XTR115的资料&#xff0c;虽然之前经常用&#xff0c;但是电路里面的细节一直没有去深究。1、XTR115的最大电流是32mA.当环路电流接近32 mA时能自动限流&#xff0c;这个在手册里有的。我在想XTR115坏了是什么情况。以前遇到过好多个XTR115损坏的情况&…

科研——BIBM论文修改和提交

文章目录 引言投递流程Latex翻译流程latex模板使用bib文件正文修改 反馈时间线等待审稿结果 引言 第一轮投递快结束了&#xff0c;这里得加快进度&#xff0c;二十号截至&#xff0c;这里得在截至之前投一下&#xff0c;这里翻译整理一下投递的流程 投递流程 投递链接论文是…

梅施云CRM客户关系管理系统-新一代智能营销CRM客户关系系统

首先了解一下什么是CRM客户关系管理系统? CRM系统是客户关系管理系统的缩写。它是一种用于帮助企业有效管理与客户关系相关的信息、活动和数据的软件工具或平台&#xff0c;通过对大量客户信息的收集、分析和整理&#xff0c;来管理客户关系、提高客户满意度、增强客户忠诚度…

四十九、openlayers官网示例Immediate Rendering (Geographic)——在地图上绘制星空动画效果

官网demo地址&#xff1a; Immediate Rendering (Geographic) 首先先创建1000个随机点&#xff0c;创建点对象。 const n 1000;const geometries new Array(n);for (let i 0; i < n; i) {const lon 360 * Math.random() - 180;const lat 180 * Math.random() - 90;ge…

【医学图像处理】从ADNI中下载样本的MMSE数据

MMSE是什么&#xff1f; 简易精神状态检查&#xff08;MMSE&#xff0c;Mini-Mental State Examination&#xff09;是一种广泛使用的认知功能评估工具。它通常用于临床和研究环境中筛查痴呆症及评估其严重程度。MMSE通过考察患者的多种认知功能来进行评估&#xff0c;包括算术…

《算法设计与分析》第五六章:回溯法与分支限界法

文章目录 回溯法分支限界法一、本章作业1.活动安排问题2.旅行商问题3.单源最短路径4.任务分配问题 二、算法积累1.回溯法求解01背包问题2.回溯法求解最大团问题3.回溯法求解n皇后问题4.回溯法求解地图着色5.回溯法求解哈密尔顿图6.回溯法求活动安排7.分支限界法求01背包问题8.分…

模拟原神圣遗物系统-小森设计项目,需求分析

需求分析 我操控某个角色的圣遗物时发现&#xff0c;一开始玩啥也不懂慢慢了解&#xff0c;今天才想起要不做一个 &#xff0c;然后开始想需求 跟Ai聊技术 聊着聊着 发现圣遗物 这个东西有点意思 本来今天打算写一下数据库 的外键想起了一些高兴的事情&#xff08;美人鱼&#…

超酷的数学神器2024最新破解版Mathtype7下载!

嗨&#xff0c;亲爱的朋友们&#xff01;&#x1f44b; 今天我要给大家分享一个超酷的数学神器——最新破解版Mathtype 7&#xff01;&#x1f389; 如果你像我一样&#xff0c;经常需要处理复杂的公式和文档&#xff0c;那么这个工具绝对是你的福音&#xff01;&#x1f4da;&…

大小鼠足底机械刺痛仪——可移动手持随时刺随时记录

简单介绍&#xff1a; 大小鼠足底机械刺痛仪主要用来评估机械痛&#xff08;阈值&#xff09;&#xff0c; 可用来检测所有的感官阈痛测试。配置了探针。能准确检测并能记录痛阈的仪器。操作方便&#xff0c;设计紧凑。 实验简便&#xff1a;使用时&#xff0c;把探针接触实验…

【C++】循环、控制流语句、

8、循环&#xff08;loops&#xff09;&#xff08;1&#xff09;for loops for循环非常灵活&#xff0c;可以做很多事情。上图红框框出来的代码块就是一个for循环。 for是关键字 for后面内容分为三部分&#xff0c;每部分用分号&#xff1b;隔开 第一部分A是变量的声明&…

小白如何重装系统win10?电脑一键重装系统傻瓜式操作!超详细步骤!

随着电脑的广泛应用&#xff0c;给笔记本/台式电脑系统重装已成为一项基本技能。对于电脑新手而言&#xff0c;如何重装Win10系统&#xff0c;或者更高版本的Win11系统可能是一个巨大的挑战。如果对电脑重装系统刚好有需要了解的小伙伴&#xff0c;不妨看看下面的干货分享。本文…

Spring源码-xxxAware实现类和BeanPostProcessor接口调用过程

xxxAware实现类作用 以ApplicationContextAware接口为例 ApplicationContextAware的作用是可以方便获取Spring容器ApplicationContext&#xff0c;从而可以获取容器内的Bean package org.springframework.context;import org.springframework.beans.BeansException; import or…

百度一下首页制作(HTML+CSS)

部分代码展示&#xff1a; <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>百度一下&#xff0c;你就知道</title><style type"text/css">/*清除元素默认性质*/body { margin: 0;padding: 0;list-…

白酒:酒文化的教育价值与实践

酒文化作为中国传统文化的重要组成部分&#xff0c;具有丰富的教育价值。云仓酒庄的豪迈白酒作为酒文化的品牌之一&#xff0c;在传承与发展中不断挖掘和发挥酒文化的教育价值。 首先&#xff0c;豪迈白酒有责任传承丰富的历史文化知识。从酒的起源、酿造技艺、酒器文化到酒礼酒…