Java中lambda表达式的基本运用
作者:代码搬运工@ 发布时间:2023-09-09 08:02:36
标签:Java,Lambda
一、实现接口
调用一个接口中的方法,传统方法:
接口类A:
package lombda;
/**
* @author yeqv
* @program A2
* @Classname A
* @Date 2022/1/25 20:38
* @Email w16638771062@163.com
*/
public interface A {
int po(int i);
}
实现接口:
package lombda;
/**
* @author yeqv
* @program A2
* @Classname B
* @Date 2022/1/25 20:43
* @Email w16638771062@163.com
*/
public class B implements A {
public int po(int i) {
return i * i;
}
}
调用接口中的方法po()
package lombda;
/**
* @author yeqv
* @program A2
* @Classname LB1
* @Date 2022/1/25 20:35
* @Email w16638771062@163.com
*/
public class LB1 {
public static void main(String[] args) {
A ab = new B();
System.out.println(ab.po(5));
}
}
运用lambda表达式后的代码可以直接调用接口A中的方法,不用再创建个类实现接口。
package lombda;
/**
* @author yeqv
* @program A2
* @Classname LB1
* @Date 2022/1/25 20:35
* @Email w16638771062@163.com
*/
public class LB1 {
public static void main(String[] args) {
var ab = (A) x -> x * x;
System.out.println(ab.po(5));
}
}
二、数字排序
package lombda;
import java.util.Arrays;
import java.util.Random;
/**
* @author yeqv
* @program A2
* @Classname LB1
* @Date 2022/1/25 20:35
* @Email w16638771062@163.com
*/
public class LB1 {
public static void main(String[] args) {
//定义数组
Integer[] integers = new Integer[]{1, 23, 6, 8, 2, 3};
System.out.println(Arrays.toString(integers));
//正序排序
Arrays.sort(integers);
System.out.println(Arrays.toString(integers));
//逆序排序
Arrays.sort(integers, (a, b) -> b - a);
System.out.println(Arrays.toString(integers));
//乱序排序
Random random = new Random();
Arrays.sort(integers, (a, b) -> random.nextBoolean() ? 1 : -1);
System.out.println(Arrays.toString(integers));
}
}
三、字符串排序方法
package lombda;
import java.util.Arrays;
import java.util.Random;
/**
* @author yeqv
* @program A2
* @Classname LB1
* @Date 2022/1/25 20:35
* @Email w16638771062@163.com
*/
public class LB1 {
public static void main(String[] args) {
/* //定义数组
Integer[] integers = new Integer[]{1, 23, 6, 8, 2, 3};
System.out.println(Arrays.toString(integers));
//正序排序
Arrays.sort(integers);
System.out.println(Arrays.toString(integers));
//逆序排序
Arrays.sort(integers, (a, b) -> b - a);
System.out.println(Arrays.toString(integers));
//乱序排序
Random random = new Random();
Arrays.sort(integers, (a, b) -> random.nextBoolean() ? 1 : -1);
System.out.println(Arrays.toString(integers));*/
//定义字符串数组
String[] strings = new String[]{"asd", "rtyuj", "vgj", "bdf"};
System.out.println(Arrays.toString(strings));
//正序
Arrays.sort(strings, (a, b) -> a.compareTo(b));
System.out.println(Arrays.toString(strings));
//逆序
Arrays.sort(strings, (a, b) -> b.compareTo(a));
System.out.println(Arrays.toString(strings));
//乱序
Random random = new Random();
Arrays.sort(strings, (a, b) -> random.nextBoolean() ? 1 : -1);
System.out.println(Arrays.toString(strings));
}
}
四、对象排序
先建立个User类
package lombda;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author yeqv
* @program A2
* @Classname User
* @Date 2022/1/25 21:26
* @Email w16638771062@163.com
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private int id;
private String name;
}
再进行排序
package lombda;
import java.util.ArrayList;
import java.util.List;
/**
* @author yeqv
* @program A2
* @Classname LB2
* @Date 2022/1/25 21:27
* @Email w16638771062@163.com
*/
public class LB2 {
public static void main(String[] args) {
//定义一个集合
List<User> list = new ArrayList<User>(List.of(new User(1, "张三"), new User(5, "张四"), new User(2, "张五"), new User(3, "张六")));
//以user对象的id来排序
list.sort((a, b) -> a.getId() - b.getId());
System.out.println(list);
}
}
来源:https://blog.csdn.net/weixin_50843918/article/details/122691818


猜你喜欢
- 实现客户端发送请求,服务器端响应机制UDP客户端代码using System;using System.Text;using System.
- 目录一、 全局JDK设置(默认配置)二、主题设置三、字体大小设置四、字符集和配置文件编码格式设置五、自动导入设置六、自动忽视大小写设置七、关
- 场景描述单例模式对于我们来说一点也不模式,是一个常见的名称,单例模式在程序中的实际效果就是:确保一个程序中只有一个实例,并提供一个全局访问点
- 本篇主要讲解SpringBoot当中使用Servlet三大组件,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学
- 本文详细讲述了Android的开机流程。分享给大家供大家参考,具体如下:开机过程中无线模块的初始化过程;如果sim卡锁开启,或者pin被锁住
- 什么是JPA一种规范,并非ORM框架,也就是ORM上统一的规范spring-boot-starter-data-jpa 
- 命令行编译java文件import java.util.*;public class shuchu{ public
- 在实际的工作中直接使用反射的机会比较少,有印象的就是一次自己做的WinForms小工具的时候利用反射来动态获取窗体上的每个控件,并且为必要的
- Note:这篇文章是基于Android Studio 3.01版本的,NDK是R16。step1:创建一个包含C++的项目其他默认就可以了。
- 基本结构我们先来看一段最基本的代码,分析这段代码在RxJava中是如何实现的。Observable.OnSubscribe<Strin
- 最近研究OpenCV想用java进行开发,因此研究了一下怎么在Eclipse中配置基于java的Opencv.第一步:先到OpenCV官网下
- 本文实例总结了C# XML序列化方法及常用特性。分享给大家供大家参考,具体如下:C#对象XML序列化(一):序列化方法和常用特性.Net F
- 本文实例讲述了Java Web实现添加定时任务的方法。分享给大家供大家参考,具体如下:定时任务时间控制类/** * 定时任务时间控制 * *
- 传统“长轮询”实现Web端即时通讯的问题WebSocket出现之前,Web端为了实现即时通讯,所用的技术都是Ajax轮询(polling)。
- 一、swagge简介前后端分离:后端︰后端控制层,服务层,数据访问层【后端团队】前端:前端控制层,视图层【前端团队】前后端通过API进行交互
- 我们先要记住三者的特征:String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线
- 介绍和使用场景1)什么是消息一个事件,需要广播或者单独传递给某个接口2)为什么使用这个配置更新了,但是其他系统不知道是否更新SpringCl
- Android传感器概述:动作传感器、环境传感器、位置传感器等,如方向传感器(电子罗盘)、重力传感器(横纵切换)。Android SDK支持
- SpringDataJpa创建中间表//fetch=FetchType.EAGER 关闭懒加载 相当于hibernate中的lazy=fal
- 前言当我们编写 C# 代码时,经常需要处理大量的数据集合。在传统的方式中,我们往往需要先将整个数据集合加载到内存中,然后再进行操作。但是如果