• java8 stream API


    java8 Arrays 的使用
    Stream<String> stream = Stream.of("a","b","c");
    List<String> upperList = stream.parallel()
        .map(String::toUpperCase)
        .collect(Collectors.toList());
    
    List<Integer> list = Arrays.asList(1,2,3,4,5);
    List<Integer> res = list.parallelStream()
        .filter(value -> value > 2)
        .collect(Collectors.toList());

    并行处理数组

    Java 8 还为数组提供了并行处理的方法,这些方法加在 Arrays 工具类上。方法列表如下:
    Arrays.parallelPrefix:任意给定一个函数,计算数组的和;
    Arrays.parallelSetAll:使用 Lambda 表达式更新数组元素;
    Arrays.parallelSort:数组排序。

    下面演示一下如何使用这些方法。在下面的代码中,先用 parallelSetAll 方法初始化数组,填充随机数;然后调用 parallelSort 方法并行排序;最后调用 parallelPrefix 方法,使用 Integer::sum 方法引用,计算出数组的和。

    链接:https://www.jianshu.com/p/44e7c05ba8ae
    int[] array = new int[10];
    //初始化
    Arrays.parallelSetAll(array, i -> new Random().nextInt(100));
    System.out.println(Arrays.toString(array));
    //排序
    Arrays.parallelSort(array);
    System.out.println(Arrays.toString(array));
    //累加
    Arrays.parallelPrefix(array, Integer::sum);
    System.out.println(Arrays.toString(array));

    strem api  最常用:

    1.集合的遍历:

    1.1 forEach and list

    java7

    List<String> items = new ArrayList<>();
    items.add("A");
    items.add("B");
    items.add("C");for(String item : items){
        System.out.println(item);
    }

    java8:

    List<String> items = new ArrayList<>();
    items.add("A");
    items.add("B");
    items.add("C");//lambda
    //Output : A,B,C,D,E
    items.parallelStream().forEach(item->System.out.println(item));
    
    //Output : C
    items.forEach(item->{
        if("C".equals(item)){
            System.out.println(item);
        }
    });
    
    //method reference
    //Output : A,B,C,D,E
    items.forEach(System.out::println);
    
    //Stream and filter
    //Output : B
    items.stream()
        .filter(s->s.contains("B"))
        .forEach(System.out::println);

    1.2. forEach for Map

    java7

    Map<String, Integer> items = new HashMap<>();
    items.put("A", 10);
    items.put("B", 20);
    items.put("C", 30);
    
    for (Map.Entry<String, Integer> entry : items.entrySet()) {
        System.out.println("Item : " + entry.getKey() + " Count : " + entry.getValue());
    }

    java8:

    Map<String, Integer> items = new HashMap<>();
    items.put("A", 10);
    items.put("B", 20);
    items.put("C", 30);
    
    items.parallelStream().forEach((k,v)->System.out.println("Item : " + k + " Count : " + v));
    
    items.forEach((k,v)->{
    System.out.println("Item : " + k + " Count : " + v);
    if("E".equals(k)){
    System.out.println("Hello E");
    }
    });

    2.数据的过滤 请参考:java8 stream API ListUtils 对 list 数据 分组 ,统计,求和 。。。--https://www.cnblogs.com/lshan/p/10861629.html

  • 相关阅读:
    Linux编程 3 (初识bash shell与man查看手册)
    Linux编程 2 (遍历目录cd与查看文件和目录ls)
    Linux编程 1 (文件系统路径说明, 目录结构说明)
    sql server 备份与恢复系列八 系统数据库备份与恢复分析
    mysql 开发进阶篇系列 34 工具篇 mysqlcheck(MyISAM表维护工具)
    mysql 开发进阶篇系列 33 工具篇(mysqlbinlog日志管理工具)
    mysql 开发进阶篇系列 32 工具篇(mysqladmin工具)
    (网页)理解Angular中的$apply()以及$digest()
    (后台)El表达式格式化两位小数
    (网页)Http状态码大全(200、404、500等)(转CSDN)
  • 原文地址:https://www.cnblogs.com/lshan/p/10951373.html
Copyright © 2020-2023  润新知