有了前面的 SAM,Lambda 表达式,以及默认接口方法作铺垫后,我们可以去很好的去理解 Java8 用 Lambda 表达式操作集合的基本原理了。此篇我们想要化解的示例代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
package cc.unmi; import java.util.Arrays; import java.util.Collection; import java.util.List; import java.util.stream.Collectors; /** * @author Unmi */ public class TestJava8Collection { public static void main(String[] args) { Collection collection = Arrays.asList("abc", "cde", "efg"); List list = collection.stream().filter(x -> x.contains("c")).collect(Collectors.toList()); list.forEach(x->System.out.println(x)); } } |
如果对其他支持闭包的语言,如 JavaScript, Groovy, Ruby, Scala 等有所了解的话,很容易看出前面的代码输出为
abc
cde 阅读全文 >>