zoukankan      html  css  js  c++  java
  • Lambda表达式学习

    lambda表达式,必须是函数式接口,必须只有一个方法
    如果接口只有一个方法java默认它为函数式接口。
    为了正确使用Lambda表达式,需要给接口加个注解

    @FunctionalInterface
    如有两个方法,立刻报错


    java内置的四大函数接口:

     


    java8 引进了stream流,流讲的就是一种计算,他可以快速的计算集合或者数组的一种方式(java就是sql,sql就是java)

    生成流

    • stream() − 为集合创建串行流。

    • parallelStream() − 为集合创建并行流。

      List<String> strings = Arrays.asList("abc", "", "bc", "efg", "abcd","", "jkl");
      List<String> filtered = strings.stream().filter(string -> !string.isEmpty()).collect(Collectors.toList());  

    常用的方法:

    forEach

    Random random = new Random();
    random.ints().limit(10).forEach(System.out::println);

    map

    List<Integer> numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
    // 获取对应的平方数
    List<Integer> squaresList = numbers.stream().map( i -> i*i).distinct().collect(Collectors.toList());

    filter

    List<String>strings = Arrays.asList("abc", "", "bc", "efg", "abcd","", "jkl");
    // 获取空字符串的数量
    long count = strings.stream().filter(string -> string.isEmpty()).count();

    limit

    Random random = new Random();
    random.ints().limit(10).forEach(System.out::println);

    sorted

    Random random = new Random();
    random.ints().limit(10).sorted().forEach(System.out::println);

    并行(parallel)程序 : parallelStream 是流并行处理程序的代替方法。以下实例我们使用 parallelStream 来输出空字符串的数量:

    List<String> strings = Arrays.asList("abc", "", "bc", "efg", "abcd","", "jkl");
    // 获取空字符串的数量
    int count = strings.parallelStream().filter(string -> string.isEmpty()).count();

    Collectors:Collectors 类实现了很多归约操作,例如将流转换成集合和聚合元素。Collectors 可用于返回列表或字符串:

    List<String>strings = Arrays.asList("abc", "", "bc", "efg", "abcd","", "jkl");
    List<String> filtered = strings.stream().filter(string -> !string.isEmpty()).collect(Collectors.toList());
     
    System.out.println("筛选列表: " + filtered);
    String mergedString = strings.stream().filter(string -> !string.isEmpty()).collect(Collectors.joining(", "));
    System.out.println("合并字符串: " + mergedString);
  • 相关阅读:
    辗转相除法求最大公约数
    洛谷——P2615 神奇的幻方 【Noip2015 day1t1】
    二分图的一大泼基础题
    HDU——T 1150 Machine Schedule
    HDU——T 1068 Girls and Boys
    POJ——T 3020 Antenna Placement
    Web框架Django(二)
    February 25 2017 Week 8 Saturday
    February 24 2017 Week 8 Friday
    February 23 2017 Week 8 Thursday
  • 原文地址:https://www.cnblogs.com/cb1186512739/p/13124747.html
Copyright © 2011-2022 走看看