當前位置:編程學習大全網 - 編程語言 - java的lambda表達式應用在哪些場合

java的lambda表達式應用在哪些場合

例1、用lambda表達式實現Runnable

我開始使用Java 8時,首先做的就是使用lambda表達式替換匿名類,而實現Runnable接口是匿名類的最好示例。看壹下Java 8之前的runnable實現方法,需要4行代碼,而使用lambda表達式只需要壹行代碼。我們在這裏做了什麽呢?那就是用() -> {}代碼塊替代了整個匿名類。

// Java 8之前:

new Thread(new Runnable() {

@Override

public void run() {

System.out.println("Before Java8, too much code for too little to do");

}

}).start();

//Java 8方式:

new Thread( () -> System.out.println("In Java8, Lambda expression rocks !!") ).start();

輸出:

too much code, for too little to do

Lambda expression rocks !!

這個例子向我們展示了Java 8 lambda表達式的語法。妳可以使用lambda寫出如下代碼:

(params) -> expression

(params) -> statement

(params) -> { statements }

例如,如果妳的方法不對參數進行修改、重寫,只是在控制臺打印點東西的話,那麽可以這樣寫:

() -> System.out.println("Hello Lambda Expressions");

如果妳的方法接收兩個參數,那麽可以寫成如下這樣:

(int even, int odd) -> even + odd

順便提壹句,通常都會把lambda表達式內部變量的名字起得短壹些。這樣能使代碼更簡短,放在同壹行。所以,在上述代碼中,變量名選用a、b或者x、y會比even、odd要好。

例2、使用Java 8 lambda表達式進行事件處理

如果妳用過Swing API編程,妳就會記得怎樣寫事件監聽代碼。這又是壹個舊版本簡單匿名類的經典用例,但現在可以不這樣了。妳可以用lambda表達式寫出更好的事件監聽代碼,如下所示:

// Java 8之前:

JButton show = new JButton("Show");

show.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

System.out.println("Event handling without lambda expression is boring");

}

});

// Java 8方式:

show.addActionListener((e) -> {

System.out.println("Light, Camera, Action !! Lambda expressions Rocks");

});

Java開發者經常使用匿名類的另壹個地方是為 Collections.sort() 定制 Comparator。在Java 8中,妳可以用更可讀的lambda表達式換掉醜陋的匿名類。我把這個留做練習,應該不難,可以按照我在使用lambda表達式實現 Runnable 和 ActionListener 的過程中的套路來做。

例3、使用lambda表達式對列表進行叠代

  • 上一篇:遊戲鍵盤哪個牌子好用
  • 下一篇:ioc和aop的區別?
  • copyright 2024編程學習大全網