您的位置:首页 > 编程语言 > Java开发

java8 新特性之-----Lambda

2015-07-29 22:26 459 查看
Lambda 简介

Lambda 作为一个新的特性添加到jdk中,说明了java对其它语言的支持,吸收其它语言先进的方法。Lambda 表达在java中提供了类型的引用,方法的引用,和默认方法。

对于Lambda的解释在wiki百科看到了就不做翻译保留原味(看看大家的理解,有不同的看法欢迎探讨)

Lambda (programming), a function (or a subroutine) defined, and possibly called, without being bound to an identifier

Lambda expression in Lambda calculus, a formal system in mathematical logic and computer science for expressing computation by way of variable binding and substitution

来自: http://medianetwork.oracle.com/video/player/3373491280001

2. 例子

import java.util.ArrayList;

import java.util.Collections;

import java.util.Comparator;

import java.util.List;

public class LambdaExpresstionTouris {

public static void main(String[] args) {

List<String> ocuppys1 = new ArrayList<String>();
ocuppys1.add("bussinessman");
ocuppys1.add("doctor");
ocuppys1.add("teacher");
ocuppys1.add("programer");
ocuppys1.add("stuedent");

List<String> ocuppys2 = new ArrayList<String>();
ocuppys2.add("bussinessman");
ocuppys2.add("doctor");
ocuppys2.add("teacher");
ocuppys2.add("programer");
ocuppys2.add("stuedent");
LambdaExpresstionTouris leTouris = new LambdaExpresstionTouris();

System.out.println("use java 7 sort:");
System.out.println("before:"+ocuppys1);
leTouris.sortByJava7(ocuppys1);
System.out.println("before:"+ocuppys1);

System.out.println("use java 8 sort:");
System.out.println("before:"+ocuppys2);
leTouris.sortByJava8(ocuppys2);
System.out.println("before:"+ocuppys2);
}

//使用JAVA 7的原始排序方法
private void sortByJava7(List<String> listStr){

Collections.sort(listStr, new Comparator<String>() {

public int compare(String s1, String s2) {
return s1.compareTo(s2);
}

});
}

//使用JAVA 8 lambda 表达式进行排序
private void sortByJava8(List<String> listStr){
Collections.sort(listStr,(s1,s2) -> s1.compareTo(s2));
}


}

总结

1,Lambda 是函数。

2,java8 定义的新的API使用的函数接口

3,默认的函数方法

4,使用它可以来实现方法的引用

5,使用它的排序函数来实现排序
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: