`
clearity
  • 浏览: 36782 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java8 lambda表达式例子

 
阅读更多
//Before Java 8: 
new Thread(new Runnable() { 
    @Override public void run() { 
           System.out.println("Before Java8, too much code for too little to do"); } }).start();

//Java 8 way: 
new Thread( () -> System.out.println("In Java8, Lambda expression rocks !!") ).start(); 

Output: too much code, for too little to do Lambda expression rocks !!

 

Java8下lambda表达式的格式如下:

(params) -> expression
(params) -> statement
(params) -> { statements }

 

// Before Java 8: 
JButton show = new JButton("Show"); show.addActionListener(new ActionListener() { 
     @Override public void actionPerformed(ActionEvent e) {       
          System.out.println("Event handling without lambda expression is boring"); 
     } 
});

 // Java 8 way: 
show.addActionListener((e) -> { System.out.println("Light, Camera, Action !! Lambda expressions Rocks"); });

 

  //Prior Java 8 : 
  List features = Arrays.asList("Lambdas", "Default Method", "Stream API", "Date and Time   API");
  for (String feature : features) { 
      System.out.println(feature); 
  } 

  //In Java 8: 
  List features = Arrays.asList("Lambdas", "Default Method", "Stream API", "Date and Time API  ");
  features.forEach(n -> System.out.println(n)); // 迭代输出
  // 方法调用可以像C++一样用::来调用features.forEach(System.out::println);

  Output: Lambdas Default Method Stream API Date and Time API

 

 

	public static void main(String[] args) {
		List languages = Arrays.asList("Java", "Scala", "C++", "Haskell", "Lisp"); 
		System.out.println("Languages which starts with J :"); 
		filter(languages, (str)->str.startsWith("J")); 
		System.out.println("Languages which ends with a "); 
		filter(languages, (str)->str.endsWith("a")); 
		System.out.println("Print all languages :"); 
		filter(languages, (str)->true); 
		System.out.println("Print no language : "); 
		filter(languages, (str)->false); 
		System.out.println("Print language whose length greater than 4:"); 
		filter(languages, (str)->str.length() > 4); 
	} 
	
	public static void filter(List names, Predicate condition) { 
	    	names.stream().filter((name) -> (condition.test(name))).forEach((name) -> { System.out.pri                ntln(name + " "); }); 
	}

	Output: Languages which starts with J : Java Languages which ends with a Java Scala Print all languages : Java Scala C++ Haskell Lisp Print no language : Print language whose length greater than 4: Scala Haskell 

 

Oreilly 出版的《Java 8 Lambdas》介绍的很详细,推荐阅读

分享到:
评论

相关推荐

    JavaLambda表达式和匿名类.pdf

    Java 8 引入了Lambda表达式,这是对传统编程方式的一大革新,它极大地简化了函数式编程,尤其是在处理集合和并发操作时。Lambda表达式是Java 8中的一种语法糖,它允许开发者以更简洁的方式定义无状态、无副作用的...

    Lambda表达式的例子

    Lambda表达式是Java 8引入的一种新的编程特性,它极大地简化了函数式编程,并使得代码更加简洁、易读。在Java中,Lambda表达式可以被理解为匿名函数,即没有名字的函数,它可以被当作方法参数传递,或者作为类的成员...

    Java8 lambda表达式在集合中的应用.pptx

    java8 lambda表达式在集合中的使用,包含代码例子。

    Java 1.8 lambda表达式示例源码

    Lambda表达式是Java 8对函数式接口支持的核心组成部分,它允许我们将代码块视为一种值,可以作为参数传递,也可以作为方法返回。 首先,我们需要理解什么是函数式接口。函数式接口是指只有一个抽象方法的接口,这样...

    【Java8】Lambda表达式 和 Stream API 详解笔记.zip

    【Java8】Lambda表达式 和 Stream API 是Java编程语言中的两个重要创新,它们极大地提升了代码的简洁性和可读性,特别是在处理集合数据时。这里我们将深入探讨这两个特性,并结合实际示例来理解它们的工作原理。 ...

    Java8新特性Lambda表达式的一些复杂用法总结

    Java 8引入了Lambda表达式,这是一种强大的新特性,它为Java编程语言带来了函数式编程的概念。Lambda表达式允许程序员创建匿名函数,即没有名称的函数,这些函数可以直接作为值传递给方法或存储在变量中。这使得代码...

    06.第六节-如何精简lambda表达式.mp4

    Java8发布到现在至少3年了,但是对Lambda表达式不熟悉、看不懂、不会用的现象非常常见。 即使是升级到JDK1.8了,但是很多开发者依然是停留在1.8之前的开发方式,使用的也是非常老旧和过时的API,遇到函数式接口也是...

    Java Lambda表达式方法使用详解.docx

    Java Lambda表达式是Java 8引入的一个重要特性,它标志着Java开始支持函数式编程风格。在传统的面向对象编程中,我们通常通过创建对象并调用其方法来执行任务。而函数式编程则更加关注结果,而不是执行任务的具体...

    java 8 lambda- expressions 学习资料,例子。练习 java example

    本资料提供了一些基础知识、例子和练习,以帮助Java开发者熟悉并掌握lambda表达式的使用。 首先,lambda表达式是Java 8为了支持函数式编程范式引入的一种新的编程语言特性。它提供了简洁的语法来表示匿名方法,也...

    Java8 Lambda表达式详解及实例

    Lambda表达式使得Java 8能够更好地支持函数式编程,让代码更简洁、可读性更强,尤其在处理集合、并发以及事件驱动编程时显得尤为重要。通过结合函数接口,Lambda表达式可以方便地应用于方法引用、流API等高级特性中...

    Java Lambda表达式.docx

    Java Lambda表达式是Java 8引入的一个重要特性,它极大地简化了函数式编程,并使得代码更加简洁、易读。在传统的面向对象编程中,我们通常通过创建对象并调用其方法来解决问题。而函数式编程则更注重结果,不关心...

    Java8 Lambda表达式模板方法实现解析

    Java8 Lambda表达式是Java语言的一个重要特性,它引入了函数式编程的概念,极大地简化了对匿名函数的处理。Lambda表达式使得代码更加简洁、易读,并且在处理集合操作时特别有用,如流(Stream) API的使用。下面将详细...

    探索Java 8的新世界:Lambda表达式全解析

    ### Java 8 中 Lambda 表达式的全解析 #### 引言 Java 8 自发布以来,便成为了 Java 发展史上的一大里程碑。这次版本更新带来了众多重要的新特性,其中最引人注目的当属 Lambda 表达式。这一功能不仅为 Java ...

    使用Java Lambda表达式实现一个简单的用户管理系统.txt

    Lambda表达式是Java 8引入的一项重要特性,它允许开发者以简洁、直观的方式编写匿名函数。这一特性极大地提高了代码的可读性和可维护性,尤其是在处理集合、进行函数式编程等方面表现突出。本文将基于提供的代码片段...

    Java:解锁Lambda表达式的魔法-从零开始的函数式编程之旅

    Lambda表达式是Java 8引入的一个重要特性,它为Java带来了函数式编程的能力。在此之前,Java一直被认为是一种纯粹的面向对象编程语言。随着Lambda表达式的加入,Java程序员现在可以享受到函数式编程带来的诸多好处,...

    运用lambda表达式+策略模式实现平台扩展(Extension)

    在Java中,策略模式常常结合接口实现,但随着Java 8的发布,**lambda表达式**的引入为策略模式提供了新的可能性。Lambda表达式简化了匿名函数的创建,使得代码更加简洁、易读。在策略模式中,我们可以用lambda表达式...

    Lambda表达式终.zip

    Lambda表达式是Java编程语言中的一个关键特性,自Java 8引入以来,它极大地简化了处理函数式编程任务的方式。Lambda表达式本质上是匿名函数,允许我们传递代码块作为参数,或者将它们作为方法返回值。这篇教程针对...

    Java复合lambda表达式的有用方法.pdf

    在这个文档中,我们关注的是如何利用lambda表达式来优化代码性能,以及如何与其他核心Java 8接口如Comparator、Function和Predicate结合使用。 首先,`Comparator.comparing`是用于根据指定的函数对对象进行比较的...

    08.第八节-使用lambda表达式创建线程.mp4

    Java8发布到现在至少3年了,但是对Lambda表达式不熟悉、看不懂、不会用的现象非常常见。 即使是升级到JDK1.8了,但是很多开发者依然是停留在1.8之前的开发方式,使用的也是非常老旧和过时的API,遇到函数式接口也是...

Global site tag (gtag.js) - Google Analytics