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
0
投稿
猜你喜欢
- 简介这篇文章我一直在纠结到底要不要写,不想写一来因为定时器用法比较简单,二来是面试中也不常问。后来还是决定写了主要是想把自己分析问题思路分享
- Android之文件数据存储一、文件保存数据介绍Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的
- 本文实例为大家分享了C语言自定义扫雷游戏的具体代码,供大家参考,具体内容如下实现过程对于用C语言实现扫雷游戏得实现,可将游戏过程分为两个板块
- 在android开发中,经常会遇到一个view需要它能够支持滑动的需求。下面通过本篇文章给大家介绍android view移动的六种方法。l
- 本文主要和大家分享介绍了关于Java JDK * 使用的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:前言代理是一种常用的
- 打jar包实现分离依赖lib和配置为了业务需要配置文件和jar分离,便于使用者修改配置信息,在网上找了很久,最终找到一个简单有效的方法。操作
- 本文实例为大家分享了java将某个数据库的表全部导出到excel中的方法,供大家参考,具体内容如下第一步:如何用POI操作Excel@Tes
- 一、问题Flutter原有的图片缓存机制,是通过PaintingBinding.instance!.imageCache来管理缓存的,这个缓
- 1、maven打包Spring Boot项目的pom.xml文件中默认使用spring-boot-maven-plugin插件进行打包:&l
- 本文实例为大家分享了利用Swing绘制一个动态时钟的具体代码,供大家参考,具体内容如下效果代码在下面,可跳过解析。前言编程实现一个时钟利用S
- 01-前言:什么是循环依赖?首先,我们先明确下依赖的定义。 如果一个 Bean bar 的属性,引用了容器中的另外一个 Bean foo,那
- 前言坚持是一件比较难的事,坚持并不是自欺欺人的一种自我麻痹和安慰,也不是做给被人的,我觉得,坚持的本质并没有带着过多的功利主义,如果满是功利
- 背景在最近的项目中,有一个需求是对一个很大的数据库进行查询,数据量大概在几千万条。但同时对查询速度的要求也比较高。这个数据库之前在没有使用P
- jar文件包括java普通类、资源文件和普通文件,在maven中即是打包src/main/java和src/main/resources资源
- java HashMap多层嵌套package chapter12;import java.util.HashMap;public clas
- producer是生产者的意思:指生产数据的线程,consumer是消费者的意思:指的是使用数据的线程public class Produc
- 本项目主要实现对汽车维修厂的信息化管理功能,主要包含三个角色:管理员,维修师傅,客户。实现的主要功能包含用户管理、配置管理、汽车管理、故障管
- 在阅读这篇文章之前,大家可以先看下《Java多线程atomic包介绍及使用方法》,了解atomic包的相关内容。一、何谓Atomic?Ato
- java对字符串进行utf-8编码我们在调用第三方 API 时,常常会被要求用到路径变量,而路径变量一般都是 utf-8 编码的,因此需要对
- Struts2Struts2是在WebWork2基础发展而来的。和struts1一样, Struts2也属于MVC框架。不过有一点