Java Lambda表达式例子

来源:互联网 发布:淘宝店铺直播要求 编辑:程序博客网 时间:2024/05/16 09:54


        正如C#之父Anders Hejlsberg在那篇文章 编程语言大趋势 中所讲,未来的编程语言将逐渐融合各自的特性,而不存在单纯的声明式语言(如之前的Java)或者单纯的函数编程语言。将来声明式编程语言借鉴函数编程思想,函数编程语言融合声明式编程特性。


//    实现Runnable线程案例// 使用() -> {} 替代匿名类:System.out.println("=== RunnableTest ===");// Anonymous RunnableRunnable r1 = new Runnable() {@Overridepublic void run() {System.out.println("Hello world one!");}};// Lambda RunnableRunnable r2 = () -> System.out.println("Hello world two!");// Run em!r1.run();r2.run();new Thread(() -> System.out.println("In Java8!")).start();
//使用Lambda表达式对字符串第一个取大写并连接List<String> G7 = Arrays.asList("USA", "Japan", "France", "Germany", "Italy", "U.K.", "Canada");String G7Countries = G7.stream().map(x -> x.toUpperCase()).collect(Collectors.joining("| "));System.out.println(G7Countries);
// 使用Lambda表达式遍历List集合// Prior Java 8 :List<String> features = Arrays.asList("Lambdas", "Default Method", "Stream API", "Date and Time API");for (String feature : features) {// System.out.println(feature);}// In Java 8:print,outfeatures = Arrays.asList("Lambdas", "Default Method", "Stream API", "Date and Time API");features.forEach(n -> System.out.print(n));// Even better use Method reference feature of Java 8// method reference is denoted by :: (double colon) operator// looks similar to score resolution operator of C++features.forEach(System.out::println);
// 使用Stream的distinct()方法过滤集合中重复元素。// Create List of square of all distinct numbersList<Integer> numbers = Arrays.asList(9, 10, 3, 4, 7, 3, 4, 3);List<Integer> distinct = numbers.stream().map(i -> i).distinct().collect(Collectors.toList());System.out.printf("Original List : %s,  Square Without duplicates :%s %n", numbers, distinct);
// 计算List中的元素的最大值,最小值,总和及平均值// Get count, min, max, sum, and average for numbersList<Integer> primes = Arrays.asList(2, 3, 5, 7, 11, 13, 17, 19, 23, 29, -1);IntSummaryStatistics stats = primes.stream().mapToInt((x) -> x).summaryStatistics();System.out.println("Highest prime number in List : " + stats.getMax());System.out.println("Lowest prime number in List : " + stats.getMin());System.out.println("Sum of all prime numbers : " + stats.getSum());System.out.println("Average of all prime numbers : " + stats.getAverage());

0 0