首页 / 值得一看 / 正文

Stream的使用方法和案例

2023-11-23值得一看阅读 273

Stream的使用方法和案例

Stream是Java 8引入的一个全新的API,用于处理集合数据。它提供了一种更简洁、更易读的方式来操作数据,使编码变得更加优雅。本文将详细介绍Stream的使用方法和给出一些案例来说明其实际应用。

Stream的基本概念

Stream是Java中对集合数据进行操作的抽象层。它将集合看作是一种流,通过一系列的中间操作和最终操作实现对流的处理。Stream的中间操作可以是过滤、映射、排序等,最终操作可以是聚合、收集等。

使用方法

要使用Stream,我们首先需要将一个集合(如List、Set、数组等)转换为Stream对象。可以通过集合的stream()方法或Arrays中的stream()方法来获得对应的Stream对象。

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream = numbers.stream();

接下来,我们可以对Stream进行一系列的中间操作,以实现对数据的处理。常见的中间操作有filter()、map()、sorted()等。

stream.filter(n -> n % 2 == 0) // 过滤出偶数
      .map(n -> n * n) // 将每个偶数平方
      .sorted() // 排序
      .forEach(System.out::println); // 打印结果

最后,我们可以使用最终操作来执行对Stream的处理。常见的最终操作有forEach()、collect()、reduce()等。

stream.forEach(System.out::println); // 打印结果
List<Integer> evenSquares = stream.collect(Collectors.toList()); // 收集结果到List中
int sum = stream.reduce(0, Integer::sum); // 对结果求和

案例

以下是一些使用Stream的案例,以帮助理解Stream的实际应用:

案例1:过滤偶数

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.stream()
      .filter(n -> n % 2 == 0)
      .forEach(System.out::println); // 输出:2 4

案例2:计算平均值

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
double average = numbers.stream()
                       .mapToInt(Integer::intValue)
                       .average()
                       .orElse(0.0);
System.out.println(average); // 输出:3.0

案例3:收集成Map

List<Person> people = Arrays.asList(
    new Person("Alice", 25),
    new Person("Bob", 30),
    new Person("Charlie", 35)
);
Map<String, Integer> ageMap = people.stream()
                                       .collect(Collectors.toMap(Person::getName, Person::getAge));
System.out.println(ageMap); // 输出:{Alice=25, Bob=30, Charlie=35}

通过以上案例,我们可以看到使用Stream可以简化代码、提高可读性,并且能够更方便地进行集合数据的处理。

综上所述,本文详细介绍了Stream的使用方法和给出了一些实际案例。希望读者通过学习本文能够更好地理解和应用Stream这一强大的API。

信息由用户投稿以及用户自行发布,真实性、合法性由发布人负责,涉及到汇款等个人财产或隐私内容时请仔细甄别,注意防骗!如有侵权,请联系:wwwlaoyuwang#126.com(#=@)!我们会第一时间核实处理!

相关推荐

  • 3d模具设计软件有哪些

    1.SolidWorksSolidWorks是一款功能强大的3D模具设计软件,它提供了广泛的工具和功能,适用于各种模具设计需求。优点:用户友好的界面,易于学习和使用。...

    963值得一看2025-09-14
  • 3d看图软件有哪些

    1.AutoCADAutoCAD是一款常见的3D看图软件,广泛应用于建筑、工程设计等领域。它具有以下优点:功能强大:AutoCAD提供了完善的绘图工具和功能,可以实现精确绘制和编...

    749值得一看2025-09-14
  • 3d特效软件有哪些

    MayaMaya是由Autodesk公司开发的一款专业的3D动画和建模软件。它拥有丰富的功能和强大的渲染能力,被广泛应用于电影、电视、游戏和广告等领域。优点:具备完善的建模...

    939值得一看2025-09-14
  • 3d室内设计效果图软件有哪些

    1.AutoCADAutoCAD是一款功能强大的3D室内设计软件,被广泛应用于工程和建筑行业。它提供了丰富的建模和渲染工具,使用户能够创建逼真的室内设计效果图。优点:具备强大...

    997值得一看2025-09-14
  • 3d贴图软件有哪些

    AutodeskMaya网址:https://www.autodesk.com/products/maya/overview优点:功能强大,适用于各种3D建模、动画和渲染项目。...

    301值得一看2025-09-14