【问题标题】:Sum only first few values of the list using Java8 [duplicate]使用Java8仅对列表的前几个值求和[重复]
【发布时间】:2021-10-01 02:56:33
【问题描述】:

这是我只需要添加前 3 个元素而不是添加完整列表的列表。如何使用 java 8 实现这一点?

  List<Integer> list = Arrays.asList(4, 5, 6, 1, 2, 3);
    int sum = list.stream().sorted().mapToInt(Integer::intValue).sum();

【问题讨论】:

标签: java list java-8


【解决方案1】:

您还可以探索“IntStream.range”作为替代或此类操作。唯一的缺点是您提供了一个排序数组。

List<Integer> list = Arrays.asList(4, 5, 6, 1, 2, 3).stream().sorted().collect(Collectors.toList());
System.out.println(IntStream.range(0,3).map(i -> list.get(i)).sum());

【讨论】:

  • 请不要只发布代码作为答案,还要解释您的代码的作用以及它如何解决问题的问题。带有解释的答案通常更有帮助、质量更好,并且更有可能吸引投票。
  • 谢谢@MarkRotteveel!更新了描述!
【解决方案2】:

如下图使用limit()

int sum = list.stream().sorted().limit(3).mapToInt(Integer::intValue).sum();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-07
    • 1970-01-01
    • 1970-01-01
    • 2020-08-28
    • 2019-08-11
    • 2018-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多