我们不需要任何枯燥的说明式的东西,直接上代码,我们看一下lambda究竟能够干些什么?
例子1,遍历一个list:
// before java 8 for (String s : lst){ System.out.println(s); } //java 8 lst.forEach(s -> System.out.println(s));
例子2,实现接口:
Thread thread1 = new Thread(new Runnable() { @Override public void run() { System.out.println("before java 8"); } }); Thread thread2 = new Thread(() -> System.out.println("in java 8"));
例子3,function interface:
public static void main(String[] args){ List<Integer> lst = Arrays.asList(0,1,2,3,4,5,6,7,8,9); pickInt(lst, (i) ->( i % 2 == 0)); System.out.println(); pickInt(lst, (i) ->( i > 3)); System.out.println(); pickInt(lst, (i) ->( i <= 3)); } public static void pickInt(List<Integer> lst, Predicate<Integer> condition){ for (int i : lst){ if (condition.test(i)){ System.out.print(i); } } }
java 8当中多了一个package,java.util.function,当中提供了大量的function interface,为我们更好地使用lambda表达式,提供了丰富的接口支持。后续,我们会有一篇专门的文章来介绍function interface的使用。
总结:lambda表达式的引入,是java向函数式编程迈进的一小步。