java8 新特性之-----Lambda

来源:互联网 发布:word2010表格数据缺失 编辑:程序博客网 时间:2024/05/16 08:02
  1. 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. 总结
    1,Lambda 是函数。
    2,java8 定义的新的API使用的函数接口
    3,默认的函数方法
    4,使用它可以来实现方法的引用
    5,使用它的排序函数来实现排序
0 0