你如何findJava中数组中所有数字的总和?
我有一个问题findJava中的数组中的所有整数的总和。 我在这个Math课上找不到任何有用的方法。 
一旦java-8发布(2014年3月),您将可以使用stream:
 int[] a = {10,20,30,40,50}; int sum = IntStream.of(a).sum(); System.out.println("The sum is " + sum); 
输出:
总数是150。
 它在java.util.stream包java.util.stream 
 import java.util.stream.*; 
这是标准Java API中不存在(AFAIK)的简单事情之一。 编写自己的代码很容易。
其他答案是完全正确的,但是这里有一个for-each语法糖。
 int someArray[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int sum = 0; for (int i : someArray) sum += i; 
此外, Java 7语言规范中甚至还显示了一个数组求和的例子。 这个例子来自第10.4节 – 数组访问 。
 class Gauss { public static void main(String[] args) { int[] ia = new int[101]; for (int i = 0; i < ia.length; i++) ia[i] = i; int sum = 0; for (int e : ia) sum += e; System.out.println(sum); } } 
 如果使用Java 8,则Arrays类提供了一个stream(int[] array)方法,该方法返回具有指定int数组的顺序IntStream 。 它也被重载为double和long数组。 
 int [] arr = {1,2,3,4}; int sum = Arrays.stream(arr).sum(); //prints 10 
 它还提供了一个方法stream(int[] array, int startInclusive, int endExclusive) ,它允许您获取数组的指定范围(可能有用): 
 int sum = Arrays.stream(new int []{1,2,3,4}, 0, 2).sum(); //prints 3 
 最后,它可以采取typesT的数组。 所以你可以按照每个例子有一个String ,其中包含数字作为input,如果你想总结他们只是做: 
 int sum = Arrays.stream("1 2 3 4".split("\\s+")).mapToInt(Integer::parseInt).sum(); 
你不能。 其他语言在PHP中有类似array_sum()的一些方法,但是Java没有。
只是..
 int[] numbers = {1,2,3,4}; int sum = 0; for( int i : numbers) { sum += i; } System.out.println(sum); 
我想添加到以前的解决scheme的唯一的一点是,我会用很长的时间来累积总量,以避免任何价值溢出。
 int[] someArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, Integer.MAX_VALUE}; long sum = 0; for (int i : someArray) sum += i; 
 在Apachemath中:有StatUtils.sum(double[] arr) 
恕我直言,总和function似乎是一个很好的适合扩展arrays类填充,sorting,search,复制,等于生活。 在javadoc中隐藏了许多方便的方法,因此在将Fortran移植到java之前,需要先滚动我们自己的帮助器方法,这是一个公平的问题。 通过巨大的javadoc索引search“sum”,“add”和任何其他你可能会想到的关键字。 你可能会怀疑肯定有人已经完成了原始typesint,float,double,Integer,Float,Double? 不pipe多么简单,总是很好的检查。 保持代码尽可能简单,不要重新发明轮子。
 int sum = 0; for (int i = 0; i < yourArray.length; i++) { sum = sum + yourArray[i]; } 
 在Java 8 
代码 :
  int[] array = new int[]{1,2,3,4,5}; int sum = IntStream.of(array).reduce( 0,(a, b) -> a + b); System.out.println("The summation of array is " + sum); System.out.println("Another way to find summation :" + IntStream.of(array).sum()); 
输出 :
 The summation of array is 15 Another way to find summation :15 
说明 :
 在Java 8 ,您可以使用简化概念来添加。 
阅读所有关于减less
 你必须推出自己的。 
 你总共从0开始。然后你考虑数组中的每一个整数,把它加到一个总数中。 那么,当你不是整数时,你有这个总和。 
如果没有整数,那么总数是0。
 int sum = 0; for (int i = 0; i < myArray.length; i++) sum += myArray[i]; } 
从这个练习中可以学到两点:
您需要以某种方式遍历数组的元素 – 您可以使用for循环或while循环执行此操作。 您需要将累加的结果存储在累加器中。 为此,您需要创build一个variables。
 int accumulator = 0; for(int i = 0; i < myArray.length; i++) { accumulator += myArray[i]; } 
你可以让你的代码看起来更像这样:
 public void someMethod(){ List<Integer> numbers = new ArrayList<Integer>(); numbers.addAll(db.findNumbers()); ... System.out.println("Result is " + sumOfNumbers(numbers)); } private int sumOfNumbers(List<Integer> numbers){ int sum = 0; for (Integer i : numbers){ sum += i; } return sum; } 
我个人喜欢这个方法。 我的代码风格有点奇怪。
 public static int sumOf(int... integers) { int total = 0; for (int i = 0; i < integers.length; total += integers[i++]); return total; } 
在代码中很容易使用:
 int[] numbers = { 1, 2, 3, 4, 5 }; sumOf(1); sumOf(1, 2, 3); sumOf(numbers); 
 define a sum variable = 0 for each number in array: sum = sum + number 
  public class Num1 { public static void main () { //Declaration and Initialization int a[]={10,20,30,40,50} //To find the sum of array elements int sum=0; for(int i=0;i<a.length;i++) { sum=sum+i; } //To display the sum System.out.println("The sum is :"+sum); } } 
我使用这个:
 public static long sumatoria(int[] i_arr) { long suma; int i; for(suma= 0, i= i_arr.length - 1; 0 <= i; suma+= i_arr[i--]); return suma; } 
这样的事情在math课上没有“方法”。 它不像它的平方根function或类似的东西。
你只需要有一个variables的总和和循环通过数组添加你find的总和的每个值。
 class Addition { public static void main() { int arr[]={5,10,15,20,25,30}; //Declaration and Initialization of an Array int sum=0; //To find the sum of array elements for(int i:arr) { sum += i; } System.out.println("The sum is :"+sum);//To display the sum } } 
在下划线库中有一个sum()方法。
代码示例:
 import com.github.underscore.lodash.$; public class Main { public static void main(String[] args) { int sum = $.sum(java.util.Arrays.asList(1, 2, 3, 4)); System.out.println(sum); // -> 10 } } 
我们可以使用用户定义的function。 首先初始化总和variables等于零。 然后遍历数组并添加sum元素。 然后更新总和variables。
代码片段:
 import java.util.*; import java.lang.*; import java.io.*; class Sum { public static int sum(int arr[]) { int sum=0; for(int i=0; i<arr.length; i++) { sum += arr[i]; } return sum; } public static void main (String[] args) { int arr[] = {1, 2, 3, 4, 5}; int total = sum(arr); System.out.printf("%d", total); } } 
 public class AddDemo { public static void main(String[] args) { ArrayList <Integer>A = new ArrayList<Integer>(); Scanner S = new Scanner(System.in); System.out.println("Enter the Numbers: "); for(int i=0; i<5; i++){ A.add(S.nextInt()); } System.out.println("You have entered: "+A); int Sum = 0; for(int i=0; i<A.size(); i++){ Sum = Sum + A.get(i); } System.out.println("The Sum of Entered List is: "+Sum); } } 
从Java 8开始,lambdaexpression式的使用已经可用。
看到这个:
 int[] nums = /** Your Array **/; 
紧凑:
 int sum = 0; Arrays.asList(nums).stream().forEach(each -> { sum += each; }); 
身高:
 int sum = 0; ArrayList<Integer> list = new ArrayList<Integer>(); for (int each : nums) { //refer back to original array list.add(each); //there are faster operations… } list.stream().forEach(each -> { sum += each; }); 
退还或打印总和。