Java 8 Lambda的详解说明

书欣 Java教程 发布时间:2022-10-08 21:24:48 阅读数:13643 1
下文笔者讲述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语句
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaCourse/202210/4592.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者