• Java8特性,Stream流的使用,收集成为map集合


    Java 8引入了Stream API,这是Java集合操作的一个重大改进。Stream API提供了一种高效且易于使用的处理数据的方式。

    Stream是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。注意:Stream自己不会存储元素,它不会改变源对象,反而它的操作会返回一个全新的Stream,且它的操作是延迟执行的,这意味着它们会等到需要结果的时候才执行。

    以下是Stream的一些常用操作:

    1.Filter: 过滤Stream中的元素

    java

    1. List names = Arrays.asList("John", "Peter", "Susan", "Kim", "Jen", "George", "Alan");
    2. List namesWithJ = names.stream()
    3. .filter(name -> name.startsWith("J"))
    4. .collect(Collectors.toList());

    2.Map: 将Stream中的每一个元素映射到另一个对象上

    1. List upperCaseNames = names.stream()
    2. .map(String::toUpperCase)
    3. .collect(Collectors.toList());

    3.Sorted: 对Stream中的元素进行排序

    1. List sortedNames = names.stream()
    2. .sorted()
    3. .collect(Collectors.toList());

    4.Collect: 将Stream中的元素收集到一个结果容器中,如集合

    List nameList = names.stream().collect(Collectors.toList());
    

    4.1将流转为map

    1. //用stream将name转为map集合
    2. Map collect1 = Arrays.stream(names).collect(Collectors.toMap(
    3. s -> s.length(),
    4. s -> s,
    5. (s1, s2) -> s1 + "," + s2 //出现两个相同的key时,合并value
    6. ));
    7. //用stream将name转为map集合,并合并相同长度的name
    8. System.out.println(collect1);
    9. Map> collect = Arrays.stream(names).collect(Collectors.groupingBy(String::length));
    10. System.out.println(collect);

    5.Match: 检查Stream中的元素是否匹配给定的条件

    boolean allNamesStartWithJ = names.stream().allMatch(name -> name.startsWith("J"));
    

    6.Reduce: 使用给定的函数,将Stream中的元素累积合并成一个汇总结果

    String joinedNames = names.stream().reduce("", (a, b) -> a + ", " + b);
    

  • 相关阅读:
    金仓数据库KingbaseES客户端编程开发框架-Activiti(3. Activiti环境配置说明)
    手写哈希表
    python+requests+pytest+allure自动化框架
    React基础知识大汇总
    银行卡四要素API接口的验证流程
    DNS压测工具-dnsperf的安装和使用(centos)
    Go runtime 调度器精讲(八):运行时间过长的抢占
    利用互斥锁实现多个线程写一个文件
    客服支持Chatbot提供即时回答,改善用户体验
    RabbitMQ学习(一)
  • 原文地址:https://blog.csdn.net/qq_68135906/article/details/137923832