public interface SumInterface { public int sum(int x,int y); }Bu interface aşağıdaki gibi kullanılabilir:
SumInterface s1 = (x, y) -> x + y; int sum = s1.sum(3, 4); System.out.println("top 1 : " + sum);Yukarıdaki örnekte SumInterface'i implement eden bir s1 nesnesi yarattık. Bu nesne SumInterface'inin sum methodunu override ediyor ve x+y şeklinde gelen parametreleri toplayıp geri döndürüyor. s1 nesnesini yarattıktan sonra sum(3,4) şeklinde çağrılırsa sonuç 7 olarak alınacaktır. Aynı interface'si aşağıdaki gibi de implement edelim :
SumInterface s2 = (x, y) -> 2*x + 2*y; int sum2 = s2.sum(3, 4); System.out.println("top 2 : " + sum2);Bu örnekte s2 , sayıları önce iki ile çarpıp sonra toplamaktadır.
Runnable r1=new Runnable() { @Override public void run() { System.out.println("Running..."); } }; r1.run();Aynı örnek lambda ile yapılırsa
Runnable r1 = () -> System.out.println("Running..."); r1.run();Görüldüğü gibi kod daha kısa bir şekilde yazılmış olacaktır. run methodu parametre almadığı için () yazılması yeterlidir.
List<User> list=new ArrayList<User>(); list.add(new User("Ali Kemal")); list.add(new User("Ahmet Kaya")); list.add(new User("Deniz Sert")); list.add(new User("Mehmet Temiz")); Collections.sort(list, new Comparator<User>(){ public int compare(User u1, User u2){ return u1.getName().compareTo(u2.getName()); } } ); for (User user : list) { System.out.println(user.getName()); }Yukarıdaki örneği Lambda ile yaparsak :
List<User> list=new ArrayList<User>(); list.add(new User("Ali Kemal")); list.add(new User("Ahmet Kaya")); list.add(new User("Deniz Sert")); list.add(new User("Mehmet Temiz")); Collections.sort(list, (u1,u2) -> u1.getName().compareTo(u2.getName()) ); for (User user : list) { System.out.println(user.getName()); }Görüldüğü gibi kod daha sadeleşmiştir