你如何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.streamjava.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 。 它也被重载为doublelong数组。

 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; }); 

退还或打印总和。