【JAVA】lambda表示式
阿新 • • 發佈:2019-01-13
前言
程式設計師是一群需要不斷進化的群體,lambda作為java1.8新出現的功能,所以還是必須要了解的。
格式:迴圈得到的變數 -> 執行語句
1.集合使用lambda表示式
import java.util.ArrayList; public class TestSum { public static void main(String[] args) { ArrayList<String> fruit =new ArrayList<String>(); fruit.add("apple"); fruit.add("banana"); fruit.add("pineapple"); fruit.forEach(one -> System.out.println(one)); } }
2.lambda函數語言程式設計
拿執行緒來說,如果 不使用lambda表示式,我們要這麼寫:
public class Test112 { public static void main(String[] args) { Runnable r = new Runnable() { @Override public void run() { System.out.println("one"); } }; Thread t = new Thread(r); t.start(); System.out.println("two"); } }
如果使用lambda,則變成:
public class Test112 { public static void main(String[] args) { Runnable r1 = () -> System.out.println("onw"); Thread t = new Thread(r1); t.start(); System.out.println("two"); } }
如果我們去檢視Runnable介面的話會發現Runnable介面只有一個方法,而且是無參的,所有寫成()
@FunctionalInterface public interface Runnable { /** * When an object implementing interface <code>Runnable</code> is used * to create a thread, starting the thread causes the object's * <code>run</code> method to be called in that separately executing * thread. * <p> * The general contract of the method <code>run</code> is that it may * take any action whatsoever. * * @see java.lang.Thread#run() */ public abstract void run(); }