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

java常用的lambda表达式总结

一、概述

        lambda表达式是JDK8中的一个新特性,对某些匿名内部类进行简化,是函数式编程;

二、基本格式

        (参数列表)->{方法体代码}

三、Stream流

        是jdk8中的新特性,将数据以流的形式进行操作

三、常用方法解析

3.1、准备工作

@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode //用于后期的去重使用
@Data
public class People {private int id;private String name;private int age;private String home;private List<Friend> friendList;
}
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode //用于后期的去重使用
@Data
public class Friend {private int id;private String name;private int age;private String home;private String category;//分类
}
 void contextLoads() {People people1=new People(1,"曹操",33,"魏国",null);People people2=new People(2,"孙权",15,"吴国",null);People people3=new People(3,"张飞",14,"蜀国",null);People people4=new People(3,"张飞",14,"蜀国",null);List<Friend>list1=new ArrayList<>();List<Friend>list2=new ArrayList<>();List<Friend>list3=new ArrayList<>();list1.add(new Friend(1,"刘备",88,"河北,石家庄","好朋友"));list1.add(new Friend(2,"赵云",99,"湖北,武汉","新朋友"));list2.add(new Friend(3,"周瑜",85,"辽宁,大连","老朋友"));list2.add(new Friend(3,"周瑜",85,"辽宁,大连","老朋友"));list2.add(new Friend(4,"诸葛亮",56,"内蒙古,包头","大朋友"));list3.add(new Friend(5,"郭嘉",56,"甘肃,兰州","骄傲的朋友"));list3.add(new Friend(6,"吕布",100,"陕西,西安","厉害的朋友"));list3.add(new Friend(7,"吕布",100,"陕西,西安","厉害的朋友"));people1.setFriendList(list1);people2.setFriendList(list2);people3.setFriendList(list3);people4.setFriendList(list3);List<People>peopleList=new ArrayList<>(Arrays.asList(people1,people2,people3,people4));}

 3.2、常用方法

stream()
distinct()
filter()

forEach()

//打印people年龄小于18的人的名字,且去重peopleList.stream().distinct().filter(new Predicate<People>() {@Overridepublic boolean test(People people) {return people.getAge()<18;}}).forEach(new Consumer<People>() {@Overridepublic void accept(People people) {System.out.println(people.getName());}});-------------------------------Alt+Enter转为Lambda表达式-----------------------------
peopleList.stream().distinct().filter(people -> people.getAge()<18).forEach(people -> System.out.println(people.getName()));

        

                        

http://www.lryc.cn/news/94978.html

相关文章:

  • 分布式应用之zookeeper集群+消息队列Kafka
  • GStreamer学习笔记(四)
  • DBeaver连接华为高斯数据库 DBeaver连接Gaussdb数据库 DBeaver connect Gaussdb
  • .net core 2.1 简单部署IIS运行
  • 提高视觉检测系统稳定性的隐藏办法——10G高速图像采集卡
  • 注解方式实现数据库字段加密与解密
  • C\C++ 使用socket判断ip是否能连通
  • 数学建模-相关系数
  • Ubuntu下安装、配置及重装CUDA教程
  • 自学网络安全(黑客)为什么火了?
  • Android S 修改关于手机的logo
  • Mysql 备份与还原
  • Cadence PCB 仿真Model Integrity专题
  • 记一次阿里云被挖矿处理记录
  • Linux系统使用(超详细)
  • 【问题总结】Docker环境下备份和恢复postgresql数据库
  • 《TCP IP网络编程》第六章
  • 如何学习java
  • RabbitMQ实现六类工作模式
  • all in one (群辉、软路由、win/linux)折腾日记
  • 【Redis】2、Redis应用之【根据 Session 和 Redis 进行登录校验和发送短信验证码】
  • MiniGPT4系列之二推理篇命令行方式:在RTX-3090 Ubuntu服务器推理详解
  • Android TvSettings Bug: 密码框无法点击唤起输入法
  • Windows, MacOS还是Linux好?
  • Gateway自定义过滤器——全局过滤器
  • Android App的几个核心概念
  • window10安装telnet
  • 大厂sql真题讲解(黑马)
  • SpringBoot整合EasyExcel实现读操作
  • go mod 设置国内源 windows 环境 win10