iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >Java Stream流详解
  • 443
分享到

Java Stream流详解

java开发语言stream流 2023-08-16 17:08:48 443人浏览 八月长安
摘要

本文目录 学习目标中间操作Filter(过滤)Map(转换)Sorted(排序)Distinct(去重)Limit(限制)Skip(跳过)Peek(展示) 终止操作forEach(循环)Collect(收集)Count(计数)R

学习目标

看玩这篇将会:
1.了解stream流
2.学会使用stream流
3.掌握stream流的使用场景
每个方法通过举例子的形式学习!

Stream api主要提供了两种类型的操作:中间操作 和 终止操作。

中间操作

中间操作是返回一个新的流,并在返回的流中包含所有之前的操作结果。它们总是延迟计算,这意味着它们只会在终止操作时执行,这样可以最大限度地优化资源使用。

Filter(过滤)

  • filter()方法接受一个谓词(一个返回boolean值的函数),并返回一个流,其中仅包含通过该谓词的元素。

建一个数组,帅选出长度大于4的元素

eg:public class Main {    public static void main(String[] args) {        List names = Arrays.asList("Alex", "Brian", "Charles", "David");        List collect = names.stream().filter(item -> item.length() > 4).collect(Collectors.toList());        System.out.println(collect);    }}

在这里插入图片描述

这段代码创建了一个包含4个字符串的List集合,然后使用Stream()方法将其转化为一个Stream流。接下来使用filter()方法筛选出长度大于4的字符串,返回一个新的包含符合条件元素的Stream流collect。最后使用collect()方法将筛选后的结果转换成一个List集合。
使用Stream流中的filter()方法可以对流中的元素进行筛选过滤。在这段代码中,lambda表达式item -> item.length() > 4指定了筛选判断条件,即只保留长度大于4的字符串。collect(Collectors.toList())则将筛选后的结果转换成一个List集合返回。
通过这段代码,开发人员可以对包含字符串的数据进行快速的筛选和过滤,并且返回结果是一个新的可操作的集合,方便后续进行处理或展示。

Map(转换)

  • map()方法可将一个流的元素转换为另一个流。它接受一个函数,该函数映射流中的每个元素到另一个元素。
public class Main {    public static void main(String[] args) {        List numbers = Arrays.asList(1, 2, 3, 4, 5);        List collect = numbers.stream().map(n ->        {            n = n * 2;            return n;        }).collect(Collectors.toList());        for (Integer integer : collect) {            System.out.println("integer = " + integer);        }    }}

这段代码使用了 Java 8 中的 Stream API 实现了一种对数字列表中的每个元素进行乘以 2 的操作,并将操作后的结果保存到新的列表中。

首先创建了一个包含数字 1~5 的列表。
然后利用 stream() 方法将列表转换成 Stream 对象。
接下来调用 map() 方法对每个元素进行操作,这里使用了 lambda 表达式对每个元素进行了乘以 2 的操作。
最后调用 collect() 方法将结果收集起来,并转换成 List。

  • 转换为Map
public class Main {    public static void main(String[] args) {        List numbers = Arrays.asList(1, 2, 3, 4, 5);        Map collect = numbers.stream().collect(Collectors.toMap(Integer::byteValue, item -> item*2, (val1, val2) -> val2));        for (Map.Entry byteIntegerEntry : collect.entrySet()) {            Byte key = byteIntegerEntry.geTKEy();            System.out.println("key = " + key);            System.out.println("Value = " + byteIntegerEntry.getValue());        }    }}

在这里插入图片描述

这段代码使用了 Java 8 中的 Stream API 实现了一种将数字列表转换成字节-整数键值对的方式。具体来说,代码中:
首先创建了一个包含数字 1~5 的列表。
然后利用 stream() 方法将列表转换成 Stream 对象。
接下来调用 collect(Collectors.toMap(…)) 方法将 Stream 转换成 Map
在 toMap 方法中,我们以每个整数的字节值为键,该整数乘以 2 为值,当遇到重复的键时取最后一个值。(这里实际上可以用任何能区分不同键的方式作为第一个参数,而不一定是 Integer::byteValue)
最后,在 for 循环中遍历了这个 Map 并打印出每个键值对的内容。
总的来说,通过 Stream API 可以方便地实现对集合数据进行筛选、映射、分组、统计等各种操作,相对于传统的循环遍历方式更为简洁、可读性更高,可以提高开发效率。

Sorted(排序)

  • sorted()方法可对流进行排序。它可以接受一个Comparator参数,也可以使用自然排序Ordering.natural()。默认排序是按升序排序。
public class Main {    public static void main(String[] args) {        int[] numbers = { 5, 2, 8, 3, 7 };        int[] sortedNumbers = Arrays.stream(numbers).sorted().toArray();        System.out.println(Arrays.toString(sortedNumbers));    }}

在这里插入图片描述

这段代码创建了一个包含整数的数组numbers,然后使用Arrays.stream()方法将其转化为一个IntStream流。接下来使用sorted()方法对流中的元素进行排序操作,返回一个新的排序后的IntStream流。最后,使用toArray()方法将排序后的结果转换为一个新的int类型数组sortedNumbers,并使用Arrays.toString()方法将结果输出到控制台。
使用Stream流可以简化代码,提高效率和可读性,方便开发人员对数据进行快速处理和排序。

Distinct(去重)

  • distinct()方法从流中返回所有不同的元素。在内部,它使用equals()方法来比较元素是否相同。因此,我们需要确保equals()方法已正确实现。
public class Main {    public static void main(String[] args) {        List numbers = Arrays.asList(1, 2, 3, 2, 1);        List collect = numbers.stream().distinct().collect(Collectors.toList());        System.out.println(collect);    }}

java

这段代码创建了一个包含整数的List集合numbers,其中包含了若干个重复的整数。接下来使用Stream()方法将其转化为一个Stream流。使用distinct()方法对流中的元素进行去重操作,返回一个新的不包含重复元素的Stream流collect。最后使用collect()方法将去重后的结果转换成一个List集合,并使用System.out.println()方法输出到控制台。
使用Stream流中的distinct()方法可以快速地对集合中的重复元素进行去重处理。在这段代码中,集合中的元素都是整数,使用distinct()方法去除了所有重复的整数,返回一个新的元素不重复且顺序不变的List集合。
运行该示例代码,输出结果为:[1, 2, 3],即去重后的不包含重复元素的整数List集合。

Limit(限制)

  • limit()方法可以将流限制为指定的元素数。
public class Main {    public static void main(String[] args) {        List numbers = Arrays.asList(1, 2, 3, 4, 5);        List collect = numbers.stream().limit(3).collect(Collectors.toList());        System.out.println(collect);    }}

在这里插入图片描述

这段代码创建了一个包含整数的List集合numbers,其中包含了5个整数。接下来使用Stream()方法将其转化为一个Stream流。使用limit()方法对流中的元素进行限制操作,仅保留前3个元素,返回一个新的只包含前3个元素的Stream流collect。最后使用collect()方法将限制操作后的结果转化为一个新的List集合,并使用System.out.println()方法输出到控制台。
使用Stream流中的limit()方法可以快速地对集合中的元素进行截取操作,仅保留前N个元素。在这段代码中,集合中包含了5个整数,使用limit(3)方法仅保留了前3个整数,返回一个新的只包含前3个元素的List集合。
运行该示例代码,输出结果为:[1, 2, 3],即仅包含前3个元素的整数List集合。

Skip(跳过)

public class Main {    public static void main(String[] args) {        List numbers = Arrays.asList(1, 2, 3, 4, 5);        List collect = numbers.stream().skip(2).collect(Collectors.toList());        System.out.println(collect);    }}
  • skip()方法可跳过前N个元素。

在这里插入图片描述

这段代码创建了一个包含整数的List集合numbers,其中包含了5个整数。接下来使用Stream()方法将其转化为一个Stream流。使用skip()方法对流中的元素进行跳过操作,跳过前2个元素,返回一个新的不包含前2个元素的Stream流collect。最后使用collect()方法将跳过操作后的结果转化为一个新的List集合,并使用System.out.println()方法输出到控制台。
使用Stream流中的skip()方法可以快速地对集合中的元素进行跳过操作,跳过前N个元素。在这段代码中,集合中包含了5个整数,使用skip(2)方法跳过前2个元素,返回一个新的不包含前2个元素的List集合。
运行该示例代码,输出结果为:[3, 4, 5],即不包含前2个元素的整数List集合。

Peek(展示)

  • peek()方法可以用于在Stream流中获取元素同时执行一些操作,如打印、调试、观察等。通常会与其他的方法联合使用。
public class Main {    public static void main(String[] args) {        List names = Arrays.asList("Alex", "Brian", "Charles", "David");        List filteredNames = names.stream()                .peek(System.out::println)                .filter(name -> name.startsWith("C"))                .peek(name -> System.out.println("Filtered value: " + name))                .collect(Collectors.toList());        System.out.println("-----------------------------------------------------------------");        System.out.println(filteredNames);    }}

在这里插入图片描述

代码中创建了一个列表 names 包含四个字符串元素,然后使用流式操作处理这个列表。首先使用 peek() 方法将每个元素打印到控制台,然后使用 filter() 方法过滤掉不符合条件的元素,即不以字母 C 开头的字符串。接下来再次使用 peek() 方法将符合条件的字符串打印到控制台,以便验证过滤操作的效果。最后使用 collect() 方法将符合条件的字符串收集到一个新的列表 filteredNames 中,并输出该列表。
注意到,控制台上先输出了列表中的四个字符串,但只有以字母 C 开头的字符串 Charles 才符合筛选条件,因此仅仅 Charles 被保存在了 filteredNames 列表中。第二个 peek() 方法也被用来打印筛选出的元素 Charles。

终止操作

终止操作返回一个结果或副作用(例如:显示控制台输出),并将流关闭。

forEach(循环)

  • forEach()方法可将给定的方法应用于流中的每个元素。该方法是一种消费流的方式,不会返回值。
public class Main {    public static void main(String[] args) {        List names = Arrays.asList("Alex", "Brian", "Charles", "David");        names.stream().forEach(System.out::println);    }}

在这里插入图片描述

这段代码创建了一个包含四个字符串元素的列表 names,使用流式操作将每个元素打印到控制台。具体来说,它使用 forEach() 方法遍历列表中的所有元素,并对每个元素执行打印操作。
其中,四个字符串元素按顺序打印到了控制台上。注意到,使用 forEach() 方法时并没有指定任何条件或谓词,因此它会对列表中的所有元素进行操作,以达到遍历、打印等目的。

Collect(收集)

  • collect()方法可以将流中的元素收集到一个集合中。一般与其他方法配合使用。
public class Main {    public static void main(String[] args) {        List numbers = Arrays.asList(1, 2, 3, 4, 5);        List evenNumbers = numbers.stream().filter(n -> n % 2 == 0).collect(Collectors.toList());        System.out.println(evenNumbers);    }}

在这里插入图片描述

这段代码创建了一个包含整数的列表 numbers,使用流式操作筛选出所有偶数,然后将它们收集到一个新的列表 evenNumbers 中,并打印输出。具体来说,它使用了 filter() 方法过滤掉所有奇数元素,只保留所有偶数元素,并使用 collect() 方法将它们收集到一个新的列表 evenNumbers 中。
注意到,只有偶数元素被保留在了新列表 evenNumbers 中,而奇数元素全部被过滤掉了。而且,在筛选偶数元素时,使用了 lambda 表达式 n -> n % 2 == 0,其中 % 表示取模操作,判断当前数是否为偶数。如果 n % 2 的结果是 0,就把 n 这个数保留下来,否则就过滤掉。

Count(计数)

  • count()方法可以返回流中的元素数。
public class Main {    public static void main(String[] args) {        List names = Arrays.asList("Alex", "Brian", "Charles", "David");        long count = names.stream().count();        System.out.println(count);    }}

在这里插入图片描述

这段代码创建了一个包含四个字符串元素的列表 names,使用流式操作计算出它包含的元素数量(即列表大小),并将该数量打印到控制台。具体来说,它使用了 count() 方法统计列表中元素的个数。
注意到,count() 方法返回的是一个 long 类型的值,表示列表中元素的个数。因为列表 names 包含了四个元素,所以 count() 方法返回值为 4,最终被打印输出到了控制台。

Reduce(聚合)

  • reduce()方法可以将流元素聚合为单个结果。它接受一个BinaryOperator参数作为累加器。
public class Main {    public static void main(String[] args) {        List numbers = Arrays.asList(1, 2, 3, 4, 5);        Optional sum = numbers.stream().reduce((a, b) -> a + b);        System.out.println(sum);    }}

在这里插入图片描述

这段代码创建了一个包含整数的列表 numbers,使用流式操作将它们累加起来得到总和,并将结果打印输出。具体来说,它使用了 reduce() 方法对列表中的所有元素进行累加操作。reduce() 方法接收一个 BinaryOperator 函数作为参数,用于指定如何处理相邻的两个元素并返回一个新的结果值。
注意到,reduce() 方法返回的是一个 Optional 类型的值,表示结果可能存在也可能不存在(例如当列表为空时)。由于列表 numbers 包含 1 到 5 共五个元素,因此 reduce() 方法的操作过程如下:
1 + 2 = 3
3 + 3 = 6
6 + 4 = 10
10 + 5 = 15
最终得到的结果 15 被包装成 Optional 类型的对象并打印输出到控制台。

AnyMatch(任意匹配)

  • anyMatch()方法如果至少有一个元素与给定的谓词匹配,则返回true。
public class Main {    public static void main(String[] args) {        List names = Arrays.asList("Alex", "Brian", "Charles", "David");        boolean anyStartsWithB = names.stream().anyMatch(name -> name.startsWith("B"));        System.out.println(anyStartsWithB);    }}

在这里插入图片描述

这段代码创建了一个包含四个字符串元素的列表 names,使用流式操作检查其中是否有任意一个元素以字母 “B” 开头,并将检查结果(布尔值)打印输出。具体来说,它使用了 anyMatch() 方法匹配列表中的所有元素,并依次对每个元素执行指定的谓词操作(这里是以 “B” 开头),只要有一个元素符合条件,就返回 true,否则返回 false。
注意到,列表 names 中包含了一个以字母 “B” 开头的元素 “Brian”,因此 anyMatch() 方法返回 true,最终被打印输出到了控制台。

AllMatch(全部匹配)

  • allMatch()方法如果所有元素都与给定谓词匹配,则返回true。
public class Main {    public static void main(String[] args) {        List names = Arrays.asList("Alex", "Brian", "Charles", "David");        boolean allStartsWithB = names.stream().allMatch(name -> name.startsWith("B"));        System.out.println(allStartsWithB);    }}

在这里插入图片描述

这段代码创建了一个包含四个字符串元素的列表 names,使用流式操作检查其中是否所有元素都以字母 “B” 开头,并将检查结果(布尔值)打印输出。具体来说,它使用了 allMatch() 方法匹配列表中的所有元素,并依次对每个元素执行指定的谓词操作(这里是以 “B” 开头),只有当所有元素都符合条件时,才返回 true,否则返回 false。
注意到,虽然列表 names 中包含了一个以字母 “B” 开头的元素 “Brian”,但是它不是所有元素都以 “B” 开头,因此 allMatch() 方法返回 false,最终被打印输出到了控制台。

NoneMatch(无匹配)

  • noneMatch()方法,如果没有任何元素与给定谓词匹配,则返回true。
public class Main {    public static void main(String[] args) {        List names = Arrays.asList("Alex", "Brian", "Charles", "David");        boolean noneStartsWithB = names.stream().noneMatch(name -> name.startsWith("E"));        System.out.println(noneStartsWithB);    }}

在这里插入图片描述

这段代码创建了一个包含四个字符串元素的列表 names,使用流式操作检查其中是否没有任意一个元素以字母 “E” 开头,并将检查结果(布尔值)打印输出。具体来说,它使用了 noneMatch() 方法匹配列表中的所有元素,并依次对每个元素执行指定的谓词操作(这里是以 “E” 开头),只有当所有元素都不符合条件时,才返回 true,否则返回 false。
注意到,列表 names 中不包含任何一个以字母 “E” 开头的元素,因此 noneMatch() 方法返回 true,最终被打印输出到了控制台。

以上就是Java Stream流的基础知识和操作方式。Stream API可以使Java程序员编写出高效,干净,紧凑的代码,使得代码易于阅读和维护。建议初学者多加练习,掌握基本操作。中级和高级程序员则需要深入研究Stream API的实现原理和运作机制,进一步提高代码的质量和效率。

使用Stream流的优缺点:

优点:

Stream流可以帮助简化代码,减少样板代码,从而提高代码质量和可读性。
Stream流充分利用了现代多核处理器的优势,在多线程场景下可以获得更好的性能表现。
Stream流提供了丰富的操作方法,可以轻松地处理各种集合和数组的数据,从而降低程序员的编码难度和心理负担。
Stream流可以帮助开发人员更容易地写出函数式风格的代码,使代码更加健壮可维护。

缺点:

Stream流有时候会让代码变得复杂,反而降低了可读性,因此在某些简单的情况下可能不需要使用Stream流。
Stream流可能会对程序的性能产生一定影响,尤其是在大型数据集或者复杂的业务逻辑的情况下,程序员需要根据具体的情况进行测试和分析,选择最优解。
Stream流可能会造成资源浪费,例如创建中间操作的临时对象,这些对象将占用存储空间,导致效率降低。
在实际开发中,应该根据具体情况来决定是否使用Stream流。一般建议在数据集较大或者需要进行复杂的数据处理操作时使用Stream流,而在一些简单的操作中则可以直接使用循环和传统的集合操作方法。此外,如果代码可读性受到影响,也可以考虑使用传统的集合操作方法来实现代码。

怎么用?

当处理的数据来源于数据库,并需要对其进行某些复杂的过滤或排序时,使用sql可能更加适合。因为数据库查询语言的操作速度通常会比Java程序快得多,而且可以通过数据库索引进一步提高性能。

但是,如果你需要在本地内存中处理已经读入程序或已经存在于集合中的小型数据集,那么使用Stream流是一个很好的选择。如需使用Java语言过滤和处理数据,Stream流提供了很多方便且易于理解的操作方法,例如:filter()、map()、reduce()等,这些操作可以帮助开发人员轻松地对数据集进行过滤和转换,并支持代码的并行化执行,提高运行效率。

总之,具体要看数据规模和使用场景。对于大规模的数据处理,SQL通常更有优势。而对于小规模的内存数据,Stream流是更灵活和可操作的方式。

好书分享

在这里插入图片描述

618,清华社 IT BOOK 多得图书活动开始啦!活动时间为 2023 年 6 月 7 日至 6 月 18 日,清华
社为您精选多款高分好书,涵盖了 c++、Java、python前端后端、数据库、算法机器学习等多
个 IT 开发领域,适合不同层次的读者。全场 5 折,扫码领券更有优惠哦!快来查看详情

图书链接:项目驱动零起点学Java

来源地址:https://blog.csdn.net/qq_54796785/article/details/131122376

--结束END--

本文标题: Java Stream流详解

本文链接: https://www.lsjlt.com/news/371751.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java--Stream流详解
    Stream是Java 8 API添加的一个新的抽象,称为流Stream,以一种声明性方式处理数据集合(侧重对于源数据计算能力的封装,并且支持序列与并行两种操作方式) Stream流是从支持数据处理操作的源生成的元素序列,源可以是数组、...
    99+
    2023-08-31
    stream
  • Java Stream流详解
    本文目录 学习目标中间操作Filter(过滤)Map(转换)Sorted(排序)Distinct(去重)Limit(限制)Skip(跳过)Peek(展示) 终止操作forEach(循环)Collect(收集)Count(计数)R...
    99+
    2023-08-16
    java 开发语言 stream流
  • Java中Stream流详解
    今天在Java学习中,遇到了starm这个操作方式,了解后发现很多操作都很实用并且在项目开发中经常用到,特写下此篇博客用来记录。 目录 一、Stream基础概念Stream操作中的惰性计算创建Stream 二、常用的Strea...
    99+
    2023-08-25
    java 开发语言 jvm
  • Java基础:流Stream详解
    目录写在前面一、"流"概念二、流的分类1、按流的方向分为:输入流、输出流2、按流处理数据的单位分为:字节流、字符流3、按流的功能分为:节点流(又称低级流)、过滤流(又称高级流、处理流...
    99+
    2024-04-02
  • 【Java 基础篇】Java Stream流详解
    文章目录 导言一、Stream流的概念二、Stream流的使用方法三、并行流操作四、Stream流与集合的比较总结 导言 Java Stream流是Java 8引入的一种新的数据处理方...
    99+
    2023-09-11
    java
  • Java的Stream流详细讲解
    一.Stream 是什么 Stream是Java 8新增的重要特性, 它提供函数式编程支持并允许以管道方式操作集合. 流操作会遍历数据源, 使用管道式操作处理数据后生成结果集合, 这个过程通常不会对数据源造成影响。 ​ 同时stream不是...
    99+
    2023-08-31
    java 开发语言
  • Java Stream流语法示例详解
    目录如何使用StreamStream的操作分类1、创建流2、操作流1)过滤2)映射3)匹配4)组合3、转换流如何使用Stream 聚合操作是Java 8针对集合类,使编程更为便利的方...
    99+
    2024-04-02
  • 【Stream流】java中Stream流详细使用方法
    在Java中,Stream是一种用于处理集合数据的流式操作API。它提供了一种简洁、灵活、高效的方式来对集合进行各种操作,如过滤、映射、排序等。下面是一些Stream的常用功能和详细的代码示例: 创...
    99+
    2023-09-29
    java spring boot 后端 开发语言
  • Java-Stream详解
    Stream 定义 Stream是Java 8新增的接口,Stream可以认为是一个高级版本的 Iterator。 Stream跟Iterator的差别 名称含义无存储Stream是基于数据源的对象,...
    99+
    2023-09-13
    java 开发语言
  • 一文详解Java中Stream流的使用
    目录简介操作1:创建流操作2:中间操作筛选(过滤)、去重映射排序消费操作3:终止操作匹配、最值、个数收集规约简介 说明 本文用实例介绍stream的使用。 JDK8新增了Stream...
    99+
    2024-04-02
  • 49天精通Java,第42天,java stream流详解,从集合遍历,看stream流操作
    目录 专栏导读 一、遍历list 二、Stream流有啥优势? 1、很屌、很帅 2、执行流时,并没有修改流背后的集合 3、简化代码 4、提高效...
    99+
    2023-08-18
    程序人生 学习 java8 Stream java18 低代码 原力计划
  • Java8新特性Stream流详解
    陈老老老板 说明:新的专栏,本专栏专门讲Java8新特性,把平时遇到的问题与Java8的写法进行总结,需要注意的地方都标红了,一起加油。 本文是介绍Java8新特性Stream流常用方法超详细教学 ...
    99+
    2023-08-17
    java 算法 数据结构
  • Java中Stream流中map和forEach的区别详解
    目录什么是 stream 流MapforEach使用场景不是很难的知识,但是今天犯错了,记录一下 什么是 stream 流 我们在使用集合或数组对元素进行操作时往往会遇到这种情况:通...
    99+
    2024-04-02
  • Java基础之Stream流原理与用法详解
    目录一、接口设计二、创建操作三、中间操作四、最终操作五、Collect收集Stream简化元素计算 一、接口设计 从Java1.8开始提出了Stream流的概念,侧重对于源数据计算能...
    99+
    2022-11-13
    Java Stream流 原理 Java Stream流 用法 Java Stream流
  • 详解java8中的Stream数据流
    Stream是java8引入的一个重度使用lambda表达式的API。Stream使用一种类似用SQL语句从数据库查询数据的直观方式来提供一种对Java集合运算和表达的高阶抽象。直观意味着开发者在写代码时只需关注他们想要的结果是什么而无需关...
    99+
    2023-05-31
    java8 stream 数据流
  • Stream流排序数组和List 详解
    目录一、对象单字段排序二、多字段排序三、数组排序以及List<Integer>排序一、对象单字段排序 List<People> peopleL...
    99+
    2024-04-02
  • JAVA8 Stream流中的reduce()方法详解
    目录reduce()简介reduce三个override的方法公共集合reduce()简介 Reduce 原意:减少,缩小根据指定的计算模型将Stream中的值计算得到一个...
    99+
    2023-02-28
    JAVA8 Stream reduce()方法 JAVA8 Stream reduce
  • 一篇文章带你了解Java Stream流
    目录一、Stream流引入现有一个需求:1.用常规方法解决需求2.用Stream流操作集合,获取流,过滤操作,打印输出二、Stream流的格式三、获取流四、Stream流的常用方法方...
    99+
    2024-04-02
  • Java的Stream流实例分析
    本篇内容主要讲解“Java的Stream流实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java的Stream流实例分析”吧!Stream流上篇文章讲了Java 8 的一个新特性:Lam...
    99+
    2023-06-29
  • Java中List使用stream流转成map的几种方式详解
    目录实体例子List 转成Map<String,Object>List 转成Map<String,String>List 转成Map<String,Li...
    99+
    2023-05-16
    java stream list转map java list转map的三种方法 stream list转map
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作