首页 > 其他分享 >记录每一天,lambda 与 函数式 接口。

记录每一天,lambda 与 函数式 接口。

时间:2023-08-01 13:46:25浏览次数:40  
标签:函数 students 接口 Student new lambda

lambda 与 函数式接口 01

  偶然遇到 LocalDate 的方法,真是太惊喜了,以前每次处理起 时间,日期 都要很头疼。当时真是烦人啊。学习过 LocalDate 后日期,与时间的处理感觉手到擒来啊,爱你 LocalDate 。学习过程中发现他是 jdk1.8 的新特性。您猜我又遇到了什么 lambda表达式 与 函数式编程 ,感觉刷新了我的世界,怎么可以这么好用呢,,,,,,,为什么我没早点看到啊。。。。可恶!!!!

  那么什么是 lambda 与 函数式接口呢?

  函数式接口的一个重要的作用是可以让方法作为参数传递给其他方法,从而实现更高阶的抽象和灵活性。例如:你可以使用函数式接口 Comparator 来定义不同的排序规则,然后传递给 Collections.sort() 方法,而不需要每次都重新写一个排序函数。

 e.g:

@FunctionalInterface
public interface Sorter {
int compare(Student s1, Student s2);
}

//e.g 对学生进行一些 排序,过滤,转换 等可以使用 函数式接口来定义这些操作规则,然后用 lambda 表达式来实现他们
public static void main(String[] args) {
ArrayList<Student> students = new ArrayList<>();
students.add(new Student("xnn",24,100));
students.add(new Student("hzx",100,10));
students.add(new Student("trh",22,50));

//之前我可能会这样写
Collections.sort(students, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
return o2.getAge() - o1.getAge();
}
});
//写的有多有不好看,现在 lambda 永远的神!!!
Sorter byname = (s1, s2) -> s1.getName().compareTo(s2.getName());
Collections.sort(students,byname::compare);
System.out.println(students);

Sorter byage = (s1, s2) -> s1.getAge()-s2.getAge();
Collections.sort(students,byage::compare);
System.out.println(students);
}

lambda 表达式可以简化匿名内部类的书写,终于可以不用那种笨比方式了。当然 lambda 并不能取代所有的内名内部类,只
能取代匿名内部类的函数式接口(@FunctionInterface 只能有一个抽象方法)。

  以前创建一个线程还得这样

new Thread(new Runnable() {
@Override
public void run() {
System.out.println("线程开始");
}
}).start();
 现在我只需要这样
new Thread(()-> System.out.println("线程开始")).start();

 

标签:函数,students,接口,Student,new,lambda
From: https://www.cnblogs.com/iopasd/p/17580070.html

相关文章

  • 【宝塔面板部署nodeJs项目】网易云nodeJs部署在云服务器上,保姆级教程,写网易云接口用自
    看了很多部署的,要么少步骤,要么就是写的太简洁,对新手不友好前言参考链接服务器如何上线node.js项目【项目放置在github中】宝塔部署nodejs项目参考多篇文章,主要为上2篇,才总结本篇提示:这里可以添加本文要记录的大概内容:github传送门,可一键下载它的代码到本地运行网易云n......
  • 无涯教程-Lua - 函数声明
    函数是一起执行任务的一组语句,您可以将代码分成单独的函数。Lua语言提供了程序可以调用的许多内置方法。如方法print()打印在控制台中作为输入传递的参数。定义函数Lua编程语言中方法定义的一般形式如下-optional_function_scopefunctionfunction_name(argument1,argume......
  • 解决pdd接口老大难的问题,稳定可靠的新接口
    pinduoduo.readme接入文档item_get根据ID取商品详情item_search根据关键词取商品列表item_search_data获得搜索词统计item_search_suggest获得搜索词推荐万邦拼多多根据ID取商品详情API返回值说明item_get-根据ID取商品详情 欢迎测试onebound.pinduoduo.item_get公共参数请求地......
  • profinet转CCLINK IE FIELD BASIC 总线网关profinet接口
    协议的不同,数据难以交换,这是生产管理系统中一直存在的难题。然而,现在有一款神奇的产品出现了,它能够将各种profinet 设备接入到CCLINKIEFIELDBASIC 网络中。这就是捷米JM-PNM-CCLKIE,一款CCLINKIEFIELDBASIC 从站功能的通讯网关。它不仅连接到CCLINKIEFIELDBASIC ......
  • 一分钟掌握技术术语:API(接口)
    很多产品经理在项目开发过程中经常听到:你调我这个接口就好了;这个功能你写个接口给我;有什么不懂的就看下API接口文档。开发经常说的接口是什么意思呢?术语解释:API(ApplicationProgrammingInterface),简单理解就是程序之间的约定。主要用于满足应用访问另一应用一组例程,但又无需访问源......
  • 该怎么用接口来获得淘宝,天猫,京东,拼多多店铺的所有商品详情
    item_search_shop-获得店铺的所有商品 前往注册开通测试onebound.taobao.item_search_shop公共参数名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等]c......
  • API数据接口该怎么对接
    随着互联网和移动互联网的发展,API(ApplicationProgrammingInterface)接口的作用越来越重要。API接口将各种平台相互连接,使得不同系统的信息可以互相获取和使用,大大提高了系统的互操作性和开发效率。本文将介绍如何对接API数据接口,以及注意事项和技巧。获取API接口首先需要找到需要......
  • 关于API接口应用
    随着互联网技术的发展,API接口已成为众多应用程序开发中的必备工具,它不仅方便了开发者进行应用程序开发,也为应用程序提供了更多的功能和服务。本文将介绍API接口的概念和应用,以及API接口的优势和未来趋势。一、什么是API接口API是ApplicationProgrammingInterface,即应用程序接口。......
  • 你是一个资深API接口爬虫程序员,现在需要你介绍一下如何通过商品id来获取商品数据并读
    获取商品数据通常需要使用API接口,根据接口文档中的说明传递商品id参数,并使用相应的请求方式(通常为GET请求)向API服务器发送请求即可。以下是一个获取商品数据的示例请求:首先打开API接口文档,找到获取商品数据的API接口。例如:https://api.xxx.com/products/{product_id}API文档中会说......
  • java怎么写接口,java开发api接口教程
    在大家的工作中,经常写界面。而且,最常用的是http接口。但是,对于初学者Java工作人员来说,写http界面还很难。那么,用实例来说明吧。一、建设项目首先,生成SpringBoot项目。省略如何构建此处,并引入相关依赖关系:org.springframework.bootartifactIdspring-boot-starter/从属从属关系or......