`

java8特征之lambda运算

    博客分类:
  • JAVA
 
阅读更多
mbda运算符:所有的lambda表达式都是用新的lambda运算符 " => ",可以叫他,“转到”或者 “成为”。运算符将表达式分为两部分,左边指定输入参数,右边是lambda的主体。
lambda表达式:
1.一个参数:param=>expr
2.多个参数:(param-list)=>expr
   
下面是Java lambda表达式的简单例子:
 
// 1. 不需要参数,返回值为 5
() -> 5
// 2. 接收一个参数(数字类型),返回其2倍的值
x -> 2 * x
// 3. 接受2个参数(数字),并返回他们的差值
(x, y) -> x – y
// 4. 接收2个int型整数,返回他们的和
(int x, int y) -> x + y
// 5. 接受一个 string 对象,并在控制台打印,不返回任何值(看起来像是返回void)
(String s) -> System.out.print(s)
下面是案例和输出结果:
public static void main(String agr[]){
		String[] atp = {"Rafael Nadal", "Novak Djokovic",  
			       "Stanislas Wawrinka",  
			       "David Ferrer","Roger Federer",  
			       "Andy Murray","Tomas Berdych",  
			       "Juan Martin Del Potro"};  
			List<String> players =  Arrays.asList(atp);  
			  
			// 以前的循环方式  
			for (String player : players) {  
			     System.out.print(player + "; ");  
			}  
			//换行
			System.out.println();  
			// 使用 lambda 表达式以及函数操作(functional operation)  
			players.forEach((player) -> System.out.print(player + "; "));  
			//换行
			System.out.println();  
			// 在 Java 8 中使用双冒号操作符(double colon operator)  
			players.forEach(System.out::print);  

	}
 
输出结果
Rafael Nadal; Novak Djokovic; Stanislas Wawrinka; David Ferrer; Roger Federer; Andy Murray; Tomas Berdych; Juan Martin Del Potro; 
Rafael Nadal; Novak Djokovic; Stanislas Wawrinka; David Ferrer; Roger Federer; Andy Murray; Tomas Berdych; Juan Martin Del Potro; 
Rafael NadalNovak DjokovicStanislas WawrinkaDavid FerrerRoger FedererAndy MurrayTomas BerdychJuan Martin Del Potro
 案例2
public static void main(String args[]){
		  List<String> languages = Arrays.asList("Java", "Scala", "C++", "Haskell", "Lisp");

		  System.out.println("Languages which starts with J :");
		  filter(languages, (str)->((String) str).startsWith("J"));

		  System.out.println("Languages which ends with a ");
		  filter(languages, (str)->((String) 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)->((String) str).length() > 4);
		}

		 public static void filter(List<String> names, Predicate condition) {
		    for(String name: names)  {
		       if(condition.test(name)) {
		          System.out.println(name + " ");
		       }
		    }
		}
  输出结果:
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 
 
 
分享到:
评论

相关推荐

    Java lambda 循环累加求和代码

    Java Lambda 循环累加求和代码是 Java 8 中引入的 Stream API 中的一种重要特性,主要用于对集合中的元素进行累加运算。本文将详细介绍 Java Lambda 循环累加求和代码的实现方法和优点,以及 Java 中其他循环方式的...

    Java8 API.rar_JAVA8API_Java 8_java 8 api_java 8 api下载_java8

    Java 8 API的核心亮点之一是Lambda表达式。这是一种简洁的函数式编程语法,允许我们将匿名函数作为方法参数或者在代码中直接定义。Lambda表达式使得处理集合数据变得更加高效,如在Stream API中的使用,这是一套用于...

    Java8开发指南

    1. **lambda表达式**:Java 8引入了lambda表达式,这是一种更简洁的匿名函数表示法,它允许我们以更简洁的方式编写函数式接口的实现。Lambda表达式的引入极大地简化了多参数和无返回值的函数式编程,同时也为集合...

    Lambda and Stream In Java 8.pptx

    ### Lambda和Stream在Java 8中的应用 #### Lambda表达式概览 Lambda表达式是Java 8中引入的一项重要特性,极大地增强了Java语言的灵活性和表达能力。它允许程序员以简洁的方式定义匿名函数,即无需指定函数名称...

    java8开发环境、运行环境包含jdk8和jre8

    1. **Lambda表达式**:这是Java 8中最显著的改变,引入了一种新的语法,允许开发者以更简洁的方式编写匿名函数。Lambda表达式使得处理集合和函数式编程更加方便。 2. **方法引用和构造器引用**:这些是与Lambda...

    java8安装包_linux-arm版本.rar

    9. **使用与开发**: 安装完成后,你可以开始使用Java 8进行开发,运行Java应用程序,或者进一步学习Java 8的新特性,如lambda表达式、方法引用、流API和日期时间API等。 通过以上步骤,你可以在Linux ARM设备,如...

    Java Platform SE 8

    4. **日期和时间API**:Java 8中替换原有的日期和时间类,引入了java.time包,包含LocalDate、LocalTime、LocalDateTime等新类,提供更强大、更易用的时间日期处理功能,如日期运算、格式化和解析等。 5. **默认...

    Java8 教程.pdf

    在实际应用中,Java8还提供了Math的精确运算支持、字符串与日期之间的转换方法、对字符串数组的操作方法以及WatchService来监控文件系统的变化。 以上就是对Java8教程中提到的重要知识点的详细说明。对于开发者来说...

    java八股文之Java8的用法.zip

    Java 8作为Java的一个重要版本,引入了很多新功能,如函数式编程、Stream API、日期时间API以及Lambda表达式等,对于提升开发效率和代码质量具有显著作用。下面,我们将深入探讨Java 8的关键知识点。 1. **Lambda...

    java JDK 1.8-8u202/ 16.0.1

    1. **Lambda表达式**:Java 8引入了lambda表达式,这是一种简洁的匿名函数表示方式,使得代码更简洁,尤其是在处理集合和并发时。 2. **方法引用来替代匿名内部类**:与lambda表达式一起,Java 8允许使用方法引用,...

    Java 8 文档说明全包 离线版

    首先,Java 8的重要更新之一是Lambda表达式。这是一种简洁的函数式编程语法,允许开发者用一种更优雅的方式处理集合和并行操作。Lambda表达式可以被用作方法参数,或者用于创建匿名函数,极大地简化了代码,尤其是...

    Java API 8

    Java 8引入了Lambda表达式,这是一种简洁的函数式编程语法,用于表示无状态、不可变的函数。它们可以作为参数传递,也可以用作返回值。Lambda表达式通常与函数式接口(如Runnable、Comparator)结合使用,简化了...

    Java中Lambda表达式之Lambda语法与作用域解析

    Java中的Lambda表达式是Java 8引入的一项重要特性,它为编写简洁且高效的代码提供了新的方式。Lambda表达式主要用于函数式编程,简化了对单方法接口的实现,使其成为一种可传递的“行为参数”。本篇文章将深入讲解...

    java8简介共4页.pdf.zip

    1. **lambda表达式**:Java 8最重要的特性之一就是引入了lambda表达式,这使得函数式编程在Java中变得更加便捷。Lambda表达式可以被视为匿名函数,它没有名字,但可以接受参数,执行操作,并可能返回结果。通过...

    1z0-808.236q.pdf (java 8 silver 题库)

    考生在准备1Z0-808考试时,需要熟悉Java 8的新特性,如Lambda表达式、流API、新的日期时间API等。这些是Java 8对语言的核心改进部分,也是考试的重点内容。 总结来说,从文件中我们可以提取的IT知识点包括: - Java...

    jisuanqi.zip_Java 8

    在Java 8中开发一个小型计算器,我们可以利用其强大的函数式编程特性,如Lambda表达式和Stream API,同时结合Swing库来构建图形用户界面(GUI)。以下是对这个项目的详细解析: 1. **Java 8 Lambda表达式**: ...

    java8demo.zip

    1. **函数式编程**:Java 8 引入了对函数式编程的支持,最显著的体现是引入了`Lambda表达式`。Lambda允许我们用更简洁的方式定义匿名函数,这在处理集合时特别有用,如`Stream API`中的操作。例如: ```java List...

    JAVA核心技术讲解

    首先,Java 8中的核心特性之一是Lambda表达式。这是一种简洁的函数式编程方式,可以用来替代匿名内部类,简化多参数无状态的回调函数,极大地提高了代码的可读性和简洁性。Lambda表达式的引入,使得Java在处理集合...

    Java 8 的新特性和改进总览

    本文将详细解析 Java 8 的主要特性,包括接口的增强、函数式接口、Lambda 表达式以及相关的编程模式。 首先,接口在 Java 8 中得到了显著的增强。现在接口可以包含静态方法,这使得我们可以在不创建额外工具类的...

    Java实现QR分解法求矩阵的所有特征值及特征向量

    ### Java 实现 QR 分解法求矩阵的所有特征值及特征向量 #### 一、引言 在数学和计算机科学领域,求解矩阵的特征值和特征向量是解决线性代数问题的一个核心环节。其中,QR 分解法是一种非常有效的方法之一,尤其...

Global site tag (gtag.js) - Google Analytics