Java JDK1.8 Lambda的多种用法,Lambda的多种写法,Lambda的多种写法比较

这篇具有很好参考价值的文章主要介绍了Java JDK1.8 Lambda的多种用法,Lambda的多种写法,Lambda的多种写法比较。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

数据(测试)

说明:泛型String可以灵活,判断条件也是

List<String> list = Arrays.asList("aa", "ccc", "ddd", "bbb", "ccc");
或者
List<Integer> list = Arrays.asList(11, 22, 33, 44, 55);

打印(遍历)

以前的写法

for (String s : list) {
	System.out.println(s);
}

使用lambda的写法

list.forEach(System.out::println);

或1

list.forEach(s -> System.out.println(s));

或2

list.forEach(s -> {
	System.out.println(s);
});

排序

以前的写法

Collections.sort(list, new Comparator<String>() {
   @Override
    public int compare(String o1, String o2) {
        return o1.compareTo(o2);
    }
});

使用lambda的写法

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

或对象

// 倒序
List<Personal> newList = list.stream().sorted(Comparator.comparing(Personal::getAge).reversed()).collect(Collectors.toList());

删除 .reversed() 为正序

判断是否存在

以前的写法

for(String s : list) {
    if(s.equals("ddd")) {
        return true;
    }
}
return false;

使用lambda的写法

boolean b = list.stream().anyMatch(s -> s.equals("ccc"));

boolean b1 = list.stream().filter(s -> s.equals("ccc")).findFirst().isPresent();

判断存在的值,并返回list

以前的写法

 List<String> list2 = new ArrayList<>();
 for(String s : list) {
     if(s.equals("ddd")) {
         list2.add(s);
     }
 }

使用lambda的写法

List<String> list3 = list.stream().filter(s -> s.equals("ccc")).collect(Collectors.toList());

累加求和

以前的写法

int sum = 0;
for (Integer v : list) {
    sum += v;
}

使用lambda的写法

int sum = list.stream().reduce(0, (s, v) -> s + v);

去重

以前的写法

懒得写,Set/Map/List都可以实现

使用lambda的写法

List<String> list2 = list.stream().distinct().collect(Collectors.toList());

List<Personal> distinctList = list.stream()
	.collect(Collectors.collectingAndThen(Collectors.toCollection(
	() -> new TreeSet<>(Comparator.comparing(Personal::getName))), ArrayList::new));

分组

以前的写法

此次省略

lambda的写法

Map<Integer, List<Personal>> map = list.stream().collect(Collectors.groupingBy(Personal::getId));

最大值

Personal max = list.stream().max(Comparator.comparing(Personal::getAge)).get();

最小值

Personal min = list.stream().min(Comparator.comparing(Personal::getAge)).get();

线程

以前的写法

new Thread(new Runnable() {
   @Override
    public void run() {
        // 处理逻辑
    }
}).start();

使用lambda的写法

new Thread(() -> {
    // 处理逻辑
}).start();

MyBatis-Plus中用法

使用lambda的写法文章来源地址https://www.toymoban.com/news/detail-618518.html

LambdaQueryWrapper<DictEntity> queryWrapper = Wrappers.lambdaQuery();
// String字符串,判断是否不为空,条件满足,执行判断
queryWrapper.like(StrUtil.isNotBlank(dict.getDictName()), DictEntity::getDictName, dict.getDictName());
// Integer整型,判断是否不等于null,条件满足,执行判断
queryWrapper.like(ObjectUtil.isNotNull(dict.getDictType()), DictEntity::getDictType, dict.getDictType());

获取ID集

List<DeptEntity> deptList = deptService.selectUserDept(uid);
String dids = deptList.stream().map(DeptEntity::getDid).collect(Collectors.joining(","));

到了这里,关于Java JDK1.8 Lambda的多种用法,Lambda的多种写法,Lambda的多种写法比较的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • java jdk1.8下载与安装

    java jdk1.8下载与安装

    官网下载地址:Java Downloads | Oracle 打开官网链接,下滑至Java 8模块,选取自己电脑适合的版本点击下载 1.找到我们下载的安装包,双击运行 2.点击下一步 3.点击更改,修改安装目录   4.选择合适的安装位置,点击确定   5.点击下一步   6.弹出jre的安装选项,点击更改,修改

    2024年02月08日
    浏览(13)
  • java jdk1.8.0_221 安装步骤

    java jdk1.8.0_221 安装步骤

    一、下载jdk Oracle JDK下载官网https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html下载jdk1.8.0_221. 需要注册账号登陆才能下载。 下载完成,双击jdk-8u221-windows-x64.exe,进行安装。 二、安装jdk 安装前准备工作,D盘新建文件夹JAVA,在JAVA文件夹中新建两个文件夹:jdk和

    2024年02月06日
    浏览(12)
  • [Java]静态代理、动态代理(基于JDK1.8)

    [Java]静态代理、动态代理(基于JDK1.8)

    【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://www.cnblogs.com/cnb-yuchen/p/18002823 出自【进步*于辰的博客】 参考笔记一,P83;笔记二,P75.4。 目录 1、概述 2、静态代理的两种形式 2.1 面向接口 2.2 面向继承 3、动态代理的两种形式 3.1 JDK动态代理

    2024年03月09日
    浏览(13)
  • 【Java基础】JDK8.0(JDK1.8)版本的下载与安装

    【Java基础】JDK8.0(JDK1.8)版本的下载与安装

    JDK(Java SE Development Kits)是Java程序员使用的开发环境,包含JRE和开发工具集。 JRE(Java Runtime Environment) :是Java程序的运行时环境,包含JVM和运行时所需要的核心类库。 官网地址:https://www.oracle.com/cn/java/technologies/javase/javase8u211-later-archive-downloads.html 链接:https://pan.baidu.com/

    2024年02月13日
    浏览(9)
  • 【Java】jdk1.8 Java代理模式,Jdk动态代理讲解(非常详细,附带class文件)

    【Java】jdk1.8 Java代理模式,Jdk动态代理讲解(非常详细,附带class文件)

       📝个人主页:哈__ 期待您的关注  想要学代理模式,我们就要先弄清一个概念 “什么是代理”? 在我们的现实生活中,你或许不少听过关于代理的名词,如:代理商。那什么又叫做代理商?让我一个词来形容就是 中间商。 举个例子,在你买二手房的时候,你一般不会直

    2024年04月15日
    浏览(14)
  • Windows11配置Java8开发环境 - JDK1.8

    Windows11配置Java8开发环境 - JDK1.8

    1、下载JDK 我们要下载的是Oracle版本的JDK,我们首先进入Oracle的官网的Java下载页面:https://www.oracle.com/cn/java/technologies/downloads/ 一直往下滑 ,找到 Java8 —点击 Windows (如果你是其他系统选择你对应的系统即可)— 在下方根据你的电脑系统类型选择对应的X86或X64然后点击下载

    2024年02月10日
    浏览(8)
  • 【Java】JDK1.8 HashMap源码,put源码详细讲解

    【Java】JDK1.8 HashMap源码,put源码详细讲解

       📝个人主页:哈__ 期待您的关注  在Java中,HashMap结构是被经常使用的,在面试当中也是经常会被问到的。这篇文章我给大家分享一下我对于HashMap结构源码的理解。 HashMap的存储与一般的数组不同,HashMap的每一个元素存储的并不是一个值,而是一个引用类型的Node结点,这

    2024年04月13日
    浏览(14)
  • 报错——warning: ignoring JAVA_HOME=/home/jdk/jdk1.8.0_281; using bundled JDK

    报错——warning: ignoring JAVA_HOME=/home/jdk/jdk1.8.0_281; using bundled JDK

    我使用了es的8.3.0版本,但es从7.17版本以后不再支持jdk1.8了,需要进行JDK的版本升级,或者降低es的版本。 es和jdk对比版本

    2024年02月07日
    浏览(13)
  • [ 环境搭建篇 ] 安装 java 环境并配置环境变量(附 JDK1.8 安装包)

    [ 环境搭建篇 ] 安装 java 环境并配置环境变量(附 JDK1.8 安装包)

    👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋 🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋 🙏作者水平有

    2024年02月12日
    浏览(9)
  • Java设计模式系列--观察者模式写法2:JDK

    Java设计模式系列--观察者模式写法2:JDK

    原文网址:Java设计模式系列--观察者模式写法2:JDK_IT利刃出鞘的博客-CSDN博客 说明 本文用示例介绍观察者模式的一种写法:JDK。 JDK的观察者模式简介 在 Java 中,java.util.Observable 类和 java.util.Observer 接口定义了观察者模式,只要实现这两个接口就可以编写观察者模式。 1. Ob

    2024年02月13日
    浏览(9)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包