java lambda 排序_Java8特性:Lambda表达式之概念篇

Java自诞生已经有十几个年头了,目前也已经发布了第十三个大版本,其中Java8是常用的版本中最新的一个版本。而Java8最大的特性就是:Lambda表达式、函数式接口和Stream流。

本篇我只介绍Lamda表达式的概念以及简单使用,至于别的我打算放到另一篇文章中讲,否则会导致文章太过臃肿。废话不多说,下面进入正题。

对于Lambda表达式来说,Java是在JDK8之后引入的。其目的是将一段代码作为参数进行传递,其格式为:

(参数列表) -> {逻辑代码块}

在没有Lambda表达式的日子里,为了将一段代码作为参数传递,我们不得不使用对象来实现。但是自从Lambda表达式有了之后,我们就可以跟过去的方式说再见。

下面我写一个简单的例子给大家感受感受。本例子的作用是调用Collections的sort的方法对一个List集合进行降序排序。因为默认的排序方式是升序的,所以我们需要传入自定义的比较器。

首先先来看一些非Lambda表达式方式的实现:

8b60fd182bd0cfec107953967622e44c.png

非Lambda方式实现

接着再来看看使用Lambda表达式的方式实现:

5392532758e57a38bcdc09103e2c769c.png

我这个例子的目的是为了实现一个整型集合的倒序排列。从上图可以看出,使用Lambda表达式方式实现明显要比接口实现类对象方式简洁得多。

那么使用Lambda和不使用Lambda只是这种区别么?不,还有一个区别。那就是编译后是否会生成额外的内部类文件。

不使用Lambda表达式的时候用“javac”编译后效果如下:

2d1ba77dfa1b526edca9f0f9bb88dafd.gif

使用Lambda表达式时候用“javac”命令编译后效果如下:

1f2ff39cd38694f98a93a4aac02e25cd.gif

对比后发现,使用Lambda方式后还可以避免生成多余的类文件。

既然,使用Lambda表达式这么爽,那么是不是可以无限制使用呢?不,使用Lambda表达式还是有限制条件的,其限制条件就是只能是运用在使用函数式接口的地方。关于函数式接口的内容大家可以自己在网上看相关资料或查看我的另一篇文章:Java8特性:函数式接口之概念篇,这里就不过多提及了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/529076.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jq获取表格里的checkbox_Python抓取网页表格(一)

Python有很多包可以抓取数据,如selenium、requests、scrapy、pandas,每个包都有其适用性,个人认为在抓取数据时,代码简洁性和数据获取的准确性是需要考虑的因素,时间快慢倒不用太在意,毕竟用python抓数据本…

html一个空格多少像素,一个空格占几个字符?

一个空格通常占2个字符,但有些特殊情况占用3个字符。在程序中,空格占用的字符数取决于程序使用的字符集,如:1、使用多字节字符集时,半角空格占用1个字节,全角空格占用2个字节。2、使用Unicode字符集时&…

各种抠图动态图片_不用手。自动、智能抠图,图片去背景

BgEraser 是一款基于 AI 的自动、智能图片去背景工具,无需勾选可用、可删除区域,上传图片,立即下载即扣图完成的图片。AppinnBgEraser 真是懒人的福音。在此之前,比如很好用的在线去背景服务 remove.bg,是需要用户手动…

bigdecimal 保留两位小数_Python的保留小数及对齐

Python的保留小数:方法1:用round函数(有坑)。median 12.3004886print(round(median, 2)) # 保留两位小数print(round(median, 3)) # 保留三位小数print(round(median, 4)) # 保留四位小数运行结果:12.312.312.3005可以看出Python中的r…

分布式光伏补贴_四川:2020年起工商业分布式光伏已无补贴

来源:四川省发改委日前,四川省发改委发布《四川省分布式光伏建设管理相关政策》,对该省分布式光伏发电项目定义、分类、备案程序、需要国补的项目相关政策进行了梳理。值得注意的是,文件明确,自2020年起,四…

用计算机玩游戏最简单的方法,如何制作电脑简易命令小游戏

满意答案sylvia10172019.01.20采纳率:48% 等级:7已帮助:460人简单的Dos小游戏开始学习java,这周只简单的学习了C的基本语法:输入输出,判断循环,因此用这些东西在java上瞎写了一个DOS小游戏。…

pandas filter_数据分析之Pandas操作(2)

接着数据分析之Pandas操作(1)的介绍,本次介绍在实际应用场景中几个常用的函数。还是以titanic生存数据为例,本次需要导入pandas 、numpy 、scipy三个工具包。import pandas as pdimport numpy as npfrom scipy.stats import zscoretrain_data pd.read_c…

ios 隐藏app的插件_等了5年终于复活,iPhone上最干净好用的微博App

来,先跟小虎妞一起回忆下2013年的微博客户端。(图源水印)那时候,首页还是按时间顺序来的,也没有赴美产子、老爷夫人知道错了的广告。后来,随着微博一次次改版,客户端越来越臃肿,第三方微博客户端像雨后春笋…

python调用node_在node中执行python脚本

Node.js多进程基础 Node.js 是以单线程的模式运行的,但它使用的是事件驱动来处理并发。这样有助于我们在多核 cpu 的系统上创建多个子进程,从而提高性能。 每个子进程总是带有三个流对象:child.stdin, child.stdout 和child.stderr。他们可能…

docker配置 nacos_Nacos - 阿里开源配置中心

这里是喵了个咪的后端技术分享,觉得写的不错。点个赞,转发一下,关注一下。本文载于个人原创技术博客http://w-blog.cn,转载请注明出处,非法转载抄袭将追究其责任。配置中心相信大家都有听过,zookeeper、apo…

jdbc获取mysql第二行表信息_【奇技淫巧】MySQL另类方法获取元数据信息

问:在进行MySQL注入时,我们通常是通过information_schema元数据来获取表名、字段名信息,从而读取相应数据。但是如果waf或其它过滤了information_schema关键字,那么还有什么方法可以读取元数据信息呢?答:从…

vscode使用sass_推荐7 个 极好用的VS Code 插件

你知道将高级开发人员与普通开发人员区分的条件是什么吗?没错,是所使用的工具,俗话说,"工欲善其事必先利其器", 拥有正确的工作工具可以让开发人员的生活变得更加轻松,甚至想写一辈子代码。巧的的…

挖掘城市ip_不断挖掘IP价值,紧抓乐园经济新机遇!

当一个国家的人均GDP达到5,000美元时,其旅游度假经济将进入成熟阶段。按照2018年末人口总数计算,我国人均GDP接近1万美元,近年来,越来越多的主题乐园落户中国。乐园的选址、运营有颇多讲究。对主题乐园而言,依托大中型…

pixel和毫米怎么换算_赶紧收藏!小学阶段所有公式、单位换算、数量关系

小学阶段会接触到很多公式,这些公式都是学习中必须要记忆的,笔者特意总结了小学一到六年级所有的公式、单位换算、数量关系、难题知识。孩子只要掌握了这四大知识重点,考试轻轻松松拿高分!一、数量关系计算公式1、单价数量&#x…

相册权限_手机相册太乱?1分钟教你快速管理自己的照片,非常好用!

喜欢拍照的朋友们是不是有这样一个烦恼,那就是手机里拍了很多照片,当你想找某一张照片时你得在手机里翻半天,费时费力,那么今天我就来给大家解决这个烦恼,手机相册是手机中必不可少的,那当我们手机照片太多…

学校计算机数据采集处理系统,中学化学计算机数据采集处理系统实验室装备

中学化学计算机数据采集处理系统实验室装备配置方案一、基础型配置(31套:教师1套,学生30套(2学生/组,以每班60学生分组)),每套配置标准如下:序号 名称 型号1 数据采集器 SJ-SJCJQ2 南师大分析软件 NJSFDX-V33 电流传感…

dplayer js控制 自动全屏_Qt编写安防视频监控系统18-云台控制

一、前言云台控制是视频监控系统中必备的一个功能,对球机进行上下左右的移动,还有焦距的控制,其实核心就是控制XYZ三个坐标轴,为了开发这个模块,特意研究了各种云台控制的方法和开源库比如soap,有些厂家使用…

css不换行属性_那些不常见,但却非常实用的css属性(整理不易)

1、-webkit-line-clamp可以把 块容器 中的内容限制为指定的行数。并且在超过行数后,在最后一行显示"..."这是正常的展示display: -webkit-box; /*值必须为-webkit-box或者-webkit-inline-box*/ -webkit-box-orient: vertical; /*值必须为vertical*/ -webk…

2020身高体重标准表儿童_男女孩最新身高标准表,你家孩子达标了吗?(附增高秘籍)...

现在大家的生活水平提高了,和很多年前相比,孩子们的平均身高提高了不少,孩子能长成一个高个子,也是很多家长非常关注的事情。其实,要想孩子长高,除了营养要跟上以外,充足的睡眠、体重不要太胖都…

java 正则匹配_正则表达式真的很强大,可惜你不会写

专注于Java领域优质技术,欢迎关注本文旨在用最通俗的语言讲述最枯燥的基本知识文章提纲:元字符重复限定符分组转义条件或区间正则表达式在几乎所有语言中都可以使用,无论是前端的JavaScript、还是后端的Java、c#。他们都提供相应的接口/函数支…