计算Java列表中所有元素的总和 | 您所在的位置:网站首页 › 冷库安装电话 › 计算Java列表中所有元素的总和 |
这篇文章将讨论如何在 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 实验室设备网 版权所有 |