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语句
 									
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

			
               
               
               
               
          
