如何使用Java中Lambda表达式
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,本篇内容介绍了"如何使用Java中Lambda表达式"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目
千家信息网最后更新 2026年11月04日如何使用Java中Lambda表达式
本篇内容介绍了"如何使用Java中Lambda表达式"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
目录
理解函数式接口以及 Lambda表达式的发展过程
Lambda表达式及语法
一起来看看具体的使用
你需要注意什么
Lambda的实际运用
1.对集合排序
2.遍历集合
3.遍历集合(带条件)
4.代替 Runnable,开启一个线程
理解函数式接口以及 Lambda表达式的发展过程
任何接口,只包含唯一一个抽象方法,就是函数式接口
/** * lambdab表达式的发展 */public class TestLambda1 { //3.静态内部类 static class Like2 implements ILike{ @Override public void lambda() { System.out.println("i like lambda2"); } } public static void main(String[] args) { ILike like=new Like(); like.lambda(); like=new Like2(); like.lambda(); //4.局部内部类 class Like3 implements ILike{ @Override public void lambda() { System.out.println("i like lambda3"); } } like=new Like3(); like.lambda(); //5.匿名内部类 like=new ILike() { @Override public void lambda() { System.out.println("i like lambda4"); } }; like.lambda(); //6.用lambda简化 like=()->{ System.out.println("i like lambda5"); }; like.lambda(); }}//1.定义一个函数式接口interface ILike{ void lambda();}//2.实现类class Like implements ILike{ @Override public void lambda() { System.out.println("i like lambda"); }}Lambda表达式及语法
Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)
// 1. 不需要参数,返回值为 5 () -> 5 // 2. 接收一个参数(数字类型),返回其2倍的值 x -> 2 * x // 3. 接受2个参数(数字),并返回他们的差值 (x, y) -> x - y // 4. 接收2个int型整数,返回他们的和 (int x, int y) -> x + y // 5. 接受一个 string 对象,并在控制台打印,不返回任何值(看起来像是返回void) (String s) -> System.out.print(s)
也就是说,不需要事先声明参数的类型,圆括号可以没有,大括号可以没有,返回值可以没有
一起来看看具体的使用
public class java8_Lambda_Test { public static final void main(String[] args) { Operator addOper = (a, b) -> a + b; Operator reduceOper = (a, b) -> a - b; Operator multiplyOper = (a, b) -> a * b; Operator DivideOper = (a, b) -> a / b; java8_Lambda_Test test = new java8_Lambda_Test(); System.out.println(test.getResult(3, 3, addOper));//6 System.out.println(test.getResult(3, 3, reduceOper));//0 System.out.println(test.getResult(3, 3, multiplyOper));//9 System.out.println(test.getResult(3, 3, DivideOper));//1 } public int getResult(int a, int b, Operator operator) { return operator.convert(a, b); } public interface Operator { int convert(int a, int b); default int get(int a) { return a; } }}你需要注意什么
1.lambda 表达式只能引用标记了 final 的外层局部变量
2.可以直接在 lambda 表达式中访问外层的局部变量
Lambda的实际运用
1.对集合排序
问题描述:在一个存放了Student对象的list中,按年龄进行排序,输出排序后的list
Student类
public class Student implements Comparable{ private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public int compareTo(Student student2) { int result =this.age - student2.age; return result; }}
Listlist=new ArrayList<>(); Student s1=new Student(); s1.setName("张三"); s1.setAge(28); list.add(s1); Student s=new Student(); s.setName("李四"); s.setAge(22); list.add(s); sortUsingJava8(list); list.forEach((student) -> System.out.println(student.getName() + ":"+student.getAge()));
// 使用 java 8 排序 static void sortUsingJava8(Listlist){ Collections.sort(list, (student1, student2) -> student1.compareTo(student2)); }
来康康使用Java7进行排序是这样的:
// 使用 java 7 排序 private void sortUsingJava7(Listlist){ Collections.sort(list, new Comparator () { @Override public int compare(String s1, String s2) { return s1.compareTo(s2); } }); }
2.遍历集合
//先准备一个集合 Listlist=new ArrayList<>(); Student s1=new Student(); s1.setName("张三"); s1.setAge(28); list.add(s1); Student s=new Student(); s.setName("李四"); s.setAge(22); list.add(s);//使用 lambda 表达式以及函数操作(functional operation) list.forEach((student) -> System.out.println(student.getName() + ":"+student.getAge()));
3.遍历集合(带条件)
//带条件 打印年龄大于等于20的学生的姓名 list.forEach((student)->{ if (student.getAge()>=20) System.out.println(student.getName()); });4.代替 Runnable,开启一个线程
Runnable r = new Runnable() { @Override public void run() { //to do something }};Thread t = new Thread(r);t.start();现在这样写:
Runnable r = () -> { //to do something};Thread t = new Thread(r);t.start();你还可以这样写:
Thread t = new Thread(() -> { //to do something // such as for for(int i = 0; i < 100; i++){ System.out.println(i); }});t.start;"如何使用Java中Lambda表达式"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
表达式
函数
排序
参数
接口
实际
局部
方法
条件
过程
发展
内容
变量
外层
对象
年龄
数字
更多
知识
类型
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡豆
互联网品科技
科技与互联网发展
万易互联网科技
狮子座互联网科技
亿策互联网科技
成都狮子座互联网科技
丰台科技园 互联网公司
科技大学互联网专业好不好
温州喔噻互联网科技有限公司
互联网校园科技培训
中和天地互联网科技有限公司
互联网科技快讯热点
九思连强互联网电子科技有限公司
珠海东科互联网科技有限公司
马化腾互联网科技教学
平安好医生打造互联网科技医疗
网互联网络科技
伍佰万互联网科技是干嘛的
互联网科技快速发展优美句子
互联网科技工作委员会主任
浩特互联网科技
未来的互联网科技
互联网科技小额贷款
佩信高科技互联网
乌苏新华互联网科技做什么的
互联网科技包装股份有限公司上市
信承诺互联网科技有限公司
亚光科技低轨卫星互联网
互联网科技自媒体灵感