[java杂记]java8的lamada 表达式

写在前面, 学习之后的笔记作为复习总结之用,建议参考本文最后的oracle的教程,并进行实践.

lamda表达式是java 8添加的新特性,

- 可以给给collection的foreach,map,filter等方法提供方便支持.
- 可以配合functional interface(只有一个方法的接口) 使用, java.util.function提供了一些这样的接口
- 替换匿名内部类(这些匿名内部类,其实也是函数是接口的类实现)
- lamada表达式传参,使得很多方法更灵活,代码可以复用,避免boilerplate code

lamada表达式的语法如下

(int x, int y) -> x +y

Argument list 参数列表 arrow token 箭头 statement block or expression 语句块或者表达式

一个参数的时候,可以不写括号,可以不写类型.

例如下:

package test

import java.util.List;
import java.util.ArrayList;
import java.util.stream.Collectors;

public class TestLamada {

    public static void main(String[] args){
        List<String> list = new ArrayList<String>();
        list.add("longstring");
        list.add("secondString");
        list.add("lol");
        // print each member
        list.forEach((String s) -> System.out.println("member:" + s));
        // print member whose length longer than 4;
        List<String> list2 = list
            .stream()
            .filter( p -> p.length() > 4)
            .collect(Collectors.toList());
        list2.forEach( s -> System.out.println("length:" + s.length())
        );

    }
}

参考

http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/Lambda-QuickStart/index.html

END

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值