温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何实现java 8 Stream处理

发布时间:2022-01-11 16:21:40 来源:亿速云 阅读:146 作者:柒染 栏目:编程语言

这篇文章将为大家详细讲解有关如何实现java 8 Stream处理,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

package staticTest;

import java.util.Arrays;
import java.util.Collection;

public class Streams {
 private enum Status {
  OPEN, CLOSED
 };

 private static final class Task {
  private final Status status;
  private final Integer points;

  Task(final Status status, final Integer points) {
   this.status = status;
   this.points = points;
  }

  public Integer getPoints() {
   return points;
  }

  public Status getStatus() {
   return status;
  }

  @Override
  public String toString() {
   return String.format("[%s, %d]", status, points);
  }
 }

 public static void main(String args[]) {
  final Collection<Task> tasks = Arrays.asList(
    new Task(Status.OPEN, 5),
    new Task(Status.OPEN, 13),
    new Task(Status.CLOSED, 8)
    );

  // Calculate total points of all active tasks using sum()
  final long totalPointsOfOpenTasks = tasks.stream().filter(task -> task.getStatus() == Status.OPEN)
    .mapToInt(Task::getPoints).sum();

  System.out.println("Total points: " + totalPointsOfOpenTasks);
 }

}

处理过程

task集合被转化为stream流对像,通过filter过滤数据,只取status为OPEN的。

mapToInt操作通过Task::getPoints这种方式调用每个task实例的getPoints方法把Task的stream转化为Integer的stream。

最后,用sum函数把所有的分数加起来,得到最终的结果。

关于如何实现java 8 Stream处理就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI