Skip to main content
 Web开发网 » 操作系统 » linux系统

下个月就发布Java17了,还不知道Java8的Lambda 表达式?

2021年10月18日6390百度已收录

今年九月就发布Java17了,还有部分开发者没接触过Java8的新特性。事情这样的,前些天同事阅读了我写的一段代码,对我用到的Lambda表达式一脸迷惑,当时我只得无奈地哭笑不得。Java 8 作为Java 语言的一个重要版本,于 2014 年3月发布 ,支持函数式编程,新的日期 API,新的Stream API 等。接下来,将简单讲述Java8的Lambda 表达式及其使用。

Lambda 表达式

Lambda 允许把函数作为参数传递到方法中,可以取代大部分的匿名内部类,使代码变得更加简洁。特别是在处理集合的相关操作,可以极大地降低代码量。

语法格式

(参数) -> 表达式 或者 (参数) ->{ 语句; }// 不需要参数,直接返回1() -> 1//单个参数,返回本身x -> x//多个参数,返回他们的差(x, y) -> x - y//单个参数,不返回值x -> System.out.println(x); /*可选类型声明:不必声明参数类型,编译器能识别参数值。可选参数圆括号:单个参数不必定义圆括号,多个参数必须定义圆括号。可选大括号:若仅有一条语句,就不需要使用大括号。可选返回关键字:若仅有一个表达式返回值,则编译器能自动返回值。 */代码示例

List<Integer> list = new ArrayList<>();list.add(1);list.add(31);list.add(9);list.add(11);list.add(19);1.遍历上述集合list

// 遍历输出集合元素for (Integer integer : list) { System.out.println(integer);}// 使用Lambda表达式遍历输出集合元素list.forEach(System.out::println);2.输出大于10的数字

//不使用Lambda表达式for (Integer integer : list) { if (integer > 10) { System.out.println(integer); }}//使用Lambda表达式list.forEach(e -> { if (e > 10) { System.out.println(e); }});3.删除大于10的数字

list.removeIf(e -> e >10);4.升序排序

list.sort((x,y) -> x-y);通过上面的4个例子,大家应该就能体会到使用Lambda表达式的魅力,觉得有用,可以了解更多便捷的操作。

评论列表暂无评论
发表评论
微信