计算Java列表中所有元素的总和 您所在的位置:网站首页 冷库安装电话 计算Java列表中所有元素的总和

计算Java列表中所有元素的总和

#计算Java列表中所有元素的总和| 来源: 网络整理| 查看: 265

这篇文章将讨论如何在 Java 中计算 List 中所有元素的总和。

1. IntStream 的 sum() 方法

计算 List 中所有元素之和的简单解决方案是将其转换为 IntStream 并打电话 sum() 获取流中元素的总和。有几种获取方式 IntStream 从 Stream 使用 mapToInt() 方法。

  1.使用方法参考 Integer::intValue

1234567891011 import java.util.Arrays;import java.util.List; class Main {    public static void main(String[] args) {        List nums = Arrays.asList(1, 2, 3, 4, 5);         int sum = nums.stream().mapToInt(Integer::intValue).sum();        System.out.println(sum);        // 15    }}

下载  运行代码

  2.使用方法参考 Integer::valueOf

1234567891011 import java.util.Arrays;import java.util.List; class Main {    public static void main(String[] args) {        List nums = Arrays.asList(1, 2, 3, 4, 5);         int sum = nums.stream().mapToInt(Integer::valueOf).sum();        System.out.println(sum);        // 15    }}

下载  运行代码

  3. 使用 Lambda 表达式 i -> i

1234567891011 import java.util.Arrays;import java.util.List; class Main {    public static void main(String[] args) {        List nums = Arrays.asList(1, 2, 3, 4, 5);         int sum = nums.stream().mapToInt(i -> i).sum();        System.out.println(sum);        // 15    }}

下载  运行代码

2.减少操作

另一种解决方案是执行reduce操作来执行加法。

1234567891011 import java.util.Arrays;import java.util.List; class Main {    public static void main(String[] args) {        List nums = Arrays.asList(1, 2, 3, 4, 5);         int sum = nums.stream().reduce((x, y) -> x + y).get();        System.out.println(sum);        // 15    }}

下载  运行代码

  我们可以使用方法参考来简化上面的代码 Integer::sum, 如下所示:

1234567891011 import java.util.Arrays;import java.util.List; class Main {    public static void main(String[] args) {        List nums = Arrays.asList(1, 2, 3, 4, 5);         int sum = nums.stream().reduce(Integer::sum).get();        System.out.println(sum);        // 15    }}

下载  运行代码

  代码可以通过删除进一步简化 Optional:

1234567891011 import java.util.Arrays;import java.util.List; class Main {    public static void main(String[] args) {        List nums = Arrays.asList(1, 2, 3, 4, 5);         int sum = nums.stream().reduce(0, Integer::sum);        System.out.println(sum);        // 15    }}

下载  运行代码

3.使用 IntSummaryStatistics

最后,我们可以得到 IntSummaryStatistics 实例来自 IntStream, 其中有 getSum() 方法来获取其中的值的总和。

1234567891011 import java.util.Arrays;import java.util.List; class Main {    public static void main(String[] args) {        List nums = Arrays.asList(1, 2, 3, 4, 5);         long sum = nums.stream().mapToInt(Integer::valueOf).summaryStatistics().getSum();        System.out.println(sum);        // 15    }}

下载  运行代码

4.幼稚的解决方案

我们甚至可以编写一个自定义例程来使用 for 循环计算 List 中所有元素的总和,如下所示:

1234567891011121314151617181920 import java.util.Arrays;import java.util.List; class Main {     public static int getSum(List nums) {        int sum = 0;        for (int i: nums) {            sum += i;        }        return sum;    }     public static void main(String[] args) {        List nums = Arrays.asList(1, 2, 3, 4, 5);         int sum = getSum(nums);        System.out.println(sum);        // 15    }}

下载  运行代码

这就是在 Java 中计算 List 中所有元素的总和。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有