Java 8 Lambda的详解说明

转自:

Java 8 Lambda的详解说明

下文笔者讲述java8中Lambda的详解,如下所示

Lambda表达式的用途

 1.Lambda可使代码更紧凑
 2.Lambda表达式可传入代码至方法中
 3.可实现并行运算,如:传入代码到filter,map,reduce中

FileFilter使用Lambda简写

File dir = new File("/opt/test/");
   FileFilter directoryFilter = new FileFilter() {      
   public boolean accept(File file) {         
		return file.isDirectory();
    }
};
  
使用Lambda表达式这段代码可以简化为如下
File dir = new File("/opt/test/");
FileFilter directoryFilter = (File f) -> f.isDirectory();
File[] dirs = dir.listFiles(directoryFilter);

   进一步简化
File dir = new File("/opt/test/");
File[] dirs = dir.listFiles((File f) -> f.isDirectory());

Event Handler

Button bt = new Button();
   bt.addActionListener(new ActionListener() {      
          public void actionPerformed(ActionEvent e) {
         ui.showSomething();
      }
});

使用Lambda表达式后
Button bt = new Button();
ActionListener listener = event -> { ui.showSomething(); };
bt.addActionListener(listener);

进一步简化: 
Button bt = new Button();
bt.addActionListener(event -> { ui.showSomething(); });

集合过滤

List<String> list = getMyStrings();for(String myString: list) {   
    if(myString.contains(possible)) {
       System.out.println(myString + " contains " + possible);
   }
}

使用Predicate和Filter后得到下面代码:
List<String> list = getMyStrings();
Predicate<String> matched = s -> s.equalsIgnoreCase(possible);
list.filter(matched);

进一步简化:
List<String> list = getMyStrings();
list.filter(s -> s.equalsIgnoreCase(possible));
Lambda使用注意事项:
     如果函数包含多条语句时
     则必须使用花括号和return语句
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值