Java 8 Stream 的终极技巧——Collectors 功能与操作方法详解
文件大小: 97k
源码售价: 69 个金币 积分规则     积分充值
资源说明: Java 8 Stream Collectors 功能与操作方法详解 Java 8 Stream Collectors 是 Java 8 中的一个重要功能,位于 java.util.stream 包下。它提供了一系列的静态方法供我们使用,通常情况下我们可以静态导入即可使用。Collectors 的主要作用是将元素收集归纳起来,比如将元素装入 Map、Set、List 等可变容器中。特别对于 Java 8 Stream Api 来说非常有用。 1. Collectors 的作用 Collectors 是 Java 8 加入的操作类,主要用于对 Stream 流进行终结操作派生出基于各种策略的结果集。我们可以借助于 Stream 来熟悉一下 Collectors。 2. Collectors 的方法 Collectors 提供了一系列的静态方法供我们使用,通常情况下我们可以静态导入即可使用。主要包括以下几种方法: ### 3.1 类型归纳 这是一个系列,作用是将元素分别归纳进可变容器 List、Map、Set、Collection 或者 ConcurrentMap。 * `Collectors.toList();` * `Collectors.toMap();` * `Collectors.toSet();` * `Collectors.toCollection();` * `Collectors.toConcurrentMap();` 我们可以根据以上提供的 API 使用 Stream 的 collect 方法中的转换为熟悉的集合容器。 ### 3.2 joining 将元素以某种规则连接起来。该方法有三种重载: * `joining(CharSequence delimiter)` * `joining(CharSequence delimiter, CharSequence prefix, CharSequence suffix)` 例如: ``` servers.stream().collect(Collectors.joining()); // 输出 FelordcnTomcatJettyUndertowResin servers.stream().collect(Collectors.joining(",")); // 输出 Felordcn,Tomcat,Jetty,Undertow,Resin servers.stream().collect(Collectors.joining(",", "[", "]")); // 输出 [Felordcn,Tomcat,Jetty,Undertow,Resin] ``` ### 3.3 collectingAndThen 该方法先执行了一个归纳操作,然后再对归纳的结果进行 Function 函数处理输出一个新的结果。 例如: ``` servers.stream().collect(Collectors.collectingAndThen(Collectors.joining(","), String::toUpperCase)); // 输出 FELORDCN,TOMCAT,JETTY,UNDERTOW,RESIN ``` ### 3.4 groupingBy 按照条件对元素进行分组,和 SQL 中的 group by 用法有异曲同工之妙,通常也建议使用 Java 进行分组处理以减轻数据库压力。 例如: ``` // 按照字符串长度进行分组 servers.stream().collect(Collectors.groupingBy(String::length)); ``` Collectors 是 Java 8 Stream Api 中的一个重要功能,提供了一系列的静态方法供我们使用,可以帮助我们更方便地对 Stream 进行处理和操作。
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。