java Lambda学习笔记

(Project p1,Project p2)->箭头 p1.getStars().compareTo(p2.getStars())
lambda参数
匿名:
lambda函数不像方法属于某个特定的类,但是和方法一样,有参数列表,函数主体,返回类型,含可能有异常列表,

传递:lambda表达式可以作为参数传递给方法或者存储再变量中。
简洁 :不需要像匿名类一样写很多模板代码。
java8中有效的lambda表达式

1      (String s) ->s.length()
 2       (projects a) ->a.getStars() ->1000
  3      (int x, int y) ->{
            System.out.println("Result:");
            System.out.println(x + y);
        }
   4     ()->42
    5    () -> 42 (Project p1,Project p2 ) ->a1.getStars().compareTo(a2.getStars())

// 基本语法
(parames)->expression

(parameters) -> {statements;}

在哪里使用以及如何使用Lambda

   //在哪里使用Lambda
        List<Project> javaProjects = filter(data,(Project p) -> "java".equals(p.getLanguage()));

// 函数式接口
        public interface Predicate<T>{
            boolean test(T t);
        }

        //函数式接口:接口只有一个抽象方法.

        Runnable r1 = ()->System.out.println("Hellow World 1");    //使用lamda

        Runnable r2 = new Runnable() { //使用匿名类
            @Override
            public void run() {
             System.out.println("Hello World 2");
            }
        }
        public static void process(Runnable r){
            r.run;
    }

// 函数描述符 函数描述符
函数式接口的抽象方法的签名基本上就是Lambda表达式的签名,这种抽象方法叫作函数描述符。
()->void
(Project,Project)->int
public void process(Runnable r){
r.run();
}
process() ->System.out.println(“java 8”);

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值