最常用方式是循环遍历加累加。1. 基础for循环:声明sum=0,遍历数组每个元素累加到sum,适用于所有一维数组,逻辑清晰易掌握。
Java数组中元素求和,最常用也最直接的方式是用循环遍历加累加。下面给出几种典型、实用的写法,覆盖基础场景和常见变体。
基础for循环求和(推荐初学者掌握)
适用于所有一维数组,逻辑清晰,易于理解与调试。
- 声明一个变量(如sum)初始化为0
- 用for (int i = 0; i 遍历每个索引
- 每次把arr[i]加到sum上
示例:
int[] nums = {3, 7, 2, 9, 1};
int sum = 0;
for (int i = 0; i < nums.length; i++) {
sum += nums[i];
}
System.out.println("总和:" + sum); // 输出:22

增强for循环(for-each)更简洁
不需要关心下标,代码更简短,适合只读遍历求和的场景。
- 语法:for (int num : nums)
- 每次迭代直接拿到当前元素值,避免索引越界风险
示例:
int[] nums = {3, 7, 2, 9, 1};
int sum = 0;
for (int num : nums) {
sum += num;
}
System.out.println("总和:" + sum); // 输出:22
使用IntStream(Java 8+,适合函数式风格)
一行代码搞定,适合处理较大数组或配合其他流操作(如过滤后再求和)。
- 调用Arrays.stream(nums).sum()
- 注意:仅适用于基本类型数组(int[]、double[]等),不支持引用类型数组
示例:
import java.util.Arrays;
int[] nums = {3, 7, 2, 9, 1};
int sum = Arrays.stream(nums).sum();
System.out.println("总和:" + sum); // 输出:22
处理边界情况的小提醒
实际开发中别忽略这些细节:
- 空数组(length == 0)时,所有方法都返回0,无需额外判断
- 数组元素为long或大数值时,用long sum = 0L避免整型溢出
- 若数组含null(如Integer[]),用Stream需先过滤:Arrays.stream(arr).filter(Objects::nonNull).mapToInt(Integer::intValue).sum()
基本上就这些。选哪种方式,看你的JDK版本、代码风格偏好和具体需求。日常开发中,for-each最常用;学基础时,传统for循环更利于理解过程。








