Java stream常用方法

Java Stream 是 JDK8 中提供的一个用于处理集合数据的 API,它可以让我们以声明式的方式对集合进行过滤、转换和聚合操作。常用的 Java Stream 方法包括:

filter:根据指定的条件过滤集合中的元素,返回一个新的 Stream。
map:将集合中的每个元素映射为另一个元素,返回一个新的 Stream。
flatMap:将一个 Stream 中的每个元素转换为一个 Stream,然后将这些 Stream 合并为一个 Stream。
distinct:去重,返回一个新的 Stream。
sorted:根据指定的比较器对元素进行排序,返回一个新的 Stream。
limit:截取前 n 个元素,返回一个新的 Stream。
skip:跳过前 n 个元素,返回一个新的 Stream。
reduce:将 Stream 中的所有元素按照指定的方式聚合成一个值,返回这个值。
collect:将 Stream 中的元素收集到一个容器中,返回这个容器。
forEach:遍历 Stream 中的每个元素。
除此之外,还有一些常用的终止操作方法,比如 count、max、min、anyMatch、allMatch、noneMatch、findAny 和 findFirst 等,它们可以对 Stream 进行终止操作并返回一个结果。
全部评论
这里使用的是 mapToInt 而不是 map,是因为在这个示例中我们需要将 Stream 中的元素转换为 int 类型,而 map 方法只能将元素转换为对象类型,无法直接转换为基本数据类型。因此,我们需要使用 mapToInt 方法来将元素转换为 int 类型。 在 Java Stream 中,可以使用 mapToXXX 方法将对象转换成基本数据类型。其中,XXX 可以是 Int、Long 或 Double,分别表示转换为 int、long 或 double 基本数据类型。
点赞 回复 分享
发布于 2023-03-24 19:33 日本
List<String> names = students.stream().map(Student::getName).collect(Collectors.toList());
点赞 回复 分享
发布于 2023-03-24 19:30 日本
对于其他类型的数组(比如对象数组),只有 arr.stream() 方法可以将其转换为 Stream 对象,而 Arrays.stream(arr) 方法则不适用。
点赞 回复 分享
发布于 2023-03-24 19:29 日本
Collectors 是 Java 8 中提供的一个工具类,它提供了很多常用的收集器(Collector),可以方便地对 Stream 进行各种集合操作。它可以将 Stream 中的元素转换成一个集合或者聚合成一个值,还可以将元素分组、分区等。 一些常用的 Collectors 方法包括: toList:将 Stream 转换成 List。 toSet:将 Stream 转换成 Set。 toMap:将 Stream 转换成 Map。 joining:将 Stream 中的元素用指定的分隔符连接成一个字符串。 counting:统计 Stream 中元素的个数。 averagingInt/Double/Long:计算 Stream 中元素的平均值。 maxBy/minBy:查找 Stream 中的最大值/最小值。 groupingBy:将 Stream 中的元素按照指定的条件分组。 partitioningBy:将 Stream 中的元素按照指定的条件分区。 这些方法都是静态方法,可以直接通过 Collectors 类进行调用。当我们需要将 Stream 中的元素聚合成一个值或者转换成一个集合时,可以使用这些方法。
点赞 回复 分享
发布于 2023-03-24 19:28 日本
String[] strArray = {"apple", "banana", "orange", "banana", "kiwi", "apple"}; String[] distinctArray = Arrays.stream(strArray).distinct().toArray(String[]::new); 数组去重
点赞 回复 分享
发布于 2023-03-24 19:25 日本

相关推荐

JWT&nbsp;的工作原理用户通过用户名和密码等凭据进行身份验证。服务器验证用户的凭据,生成&nbsp;JWT,并将其返回给用户。JWT&nbsp;通过&nbsp;Base64Url&nbsp;编码而成。用户存储&nbsp;JWT,通常存储在浏览器的&nbsp;localStorage&nbsp;或&nbsp;sessionStorage&nbsp;中。用户在每次请求时将&nbsp;JWT&nbsp;发送到服务器,通常通过&nbsp;HTTP&nbsp;请求的&nbsp;Authorization&nbsp;头部。服务器接收到&nbsp;JWT&nbsp;后验证其签名与内容。如果有效,服务器执行该请求;如果无效,返回相应的错误信息。JWT&nbsp;的优势无状态:JWT&nbsp;以自包含的方式存储用户信息,服务器不需要存储用户会话信息,适合分布式系统。跨域支持:由于&nbsp;JWT&nbsp;是基于标准的字符串格式,可以轻松支持跨域请求。灵活性:可以在&nbsp;Token&nbsp;中存储自定义数据,不仅限于身份验证相关的信息。安全性:通过签名算法保证数据的完整性,避免被篡改。JWT&nbsp;的缺点不可撤销性:JWT&nbsp;一旦生成,无法简单地撤销,除非设计了&nbsp;Token&nbsp;刷新机制。过期管理:需要合理设置过期时间,过长会带来安全隐患,过短则可能影响用户体验。隐私问题:JWT&nbsp;中的信息是Base64Url编码的,并未加密,因此敏感信息不应直接放在&nbsp;Token&nbsp;中。常见用例用户身份验证:用户登录成功后,会话管理通过发放&nbsp;JWT&nbsp;实现。API&nbsp;访问控制:保护&nbsp;API&nbsp;端点,确保只有持有有效&nbsp;Token&nbsp;的用户才能访问。单点登录(SSO):多个系统之间共享&nbsp;JWT,实现单点登录。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务