Ich habe Probleme, die Summe aller Zahlen in einem Array in Java zu finden. Ich kann dafür keine nützliche Methode in der Klasse Math
finden.
In Java-8 können Sie Streams verwenden:
int[] a = {10,20,30,40,50};
int sum = IntStream.of(a).sum();
System.out.println("The sum is " + sum);
Ausgabe:
Die Summe beträgt 150.
Es ist im Paket Java.util.stream
import Java.util.stream.*;
Dies ist eines dieser einfachen Dinge, die (AFAIK) in der Standard-Java-API nicht vorhanden sind. Es ist leicht genug, selbst zu schreiben.
Andere Antworten sind vollkommen in Ordnung, aber hier ist eine für jeden syntaktischen Zucker.
int someArray[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int sum = 0;
for (int i : someArray)
sum += i;
Ein Beispiel für die Array-Summation ist auch in der Java 7-Sprachspezifikation gezeigt . Das Beispiel stammt aus Section 10.4 - Array Access.
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);
}
}
Wenn Sie Java 8 verwenden, stellt die Klasse Arrays
eine stream(int[] array)
-Methode bereit, die eine sequentielle IntStream
mit dem angegebenen int
-Array zurückgibt. Es wurde auch für double
- und long
-Arrays überladen.
int [] arr = {1,2,3,4};
int sum = Arrays.stream(arr).sum(); //prints 10
Es bietet auch eine Methode stream(int[] array, int startInclusive, int endExclusive)
, mit der Sie einen bestimmten Bereich des Arrays nehmen können (was nützlich sein kann):
int sum = Arrays.stream(new int []{1,2,3,4}, 0, 2).sum(); //prints 3
Schließlich kann ein Array vom Typ T
verwendet werden. Sie können also pro Beispiel eine String
haben, die Zahlen als Eingabe enthält, und wenn Sie sie summieren möchten, tun Sie dies einfach:
int sum = Arrays.stream("1 2 3 4".split("\\s+")).mapToInt(Integer::parseInt).sum();
Du kannst nicht Für andere Sprachen gibt es einige Methoden wie array_sum () in PHP, Java jedoch nicht.
Gerade..
int[] numbers = {1,2,3,4};
int sum = 0;
for( int i : numbers) {
sum += i;
}
System.out.println(sum);
In Apache Math: Es gibt StatUtils.sum(double[] arr)
Der einzige Punkt, den ich zu früheren Lösungen hinzufügen würde, ist, dass ich einen Long-Wert verwenden würde, um die Gesamtsumme zu sammeln, um einen Wertüberlauf zu vermeiden.
int[] someArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, Integer.MAX_VALUE};
long sum = 0;
for (int i : someArray)
sum += i;
Im Java 8
Code :
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());
Ausgabe :
The summation of array is 15
Another way to find summation :15
Erklärung :
Im Java 8
, Sie können das Reduktionskonzept verwenden, um Ihre Addition durchzuführen.
int sum = 0;
for (int i = 0; i < yourArray.length; i++)
{
sum = sum + yourArray[i];
}
IMHO scheint eine Summenfunktion die Arrays-Klasse zu erweitern, in der füllen, sortieren, suchen, kopieren und gleichwertig sind. Es gibt viele praktische Methoden, die sich in den Javadocs verstecken, daher ist es eine gute Frage, wenn Sie Fortran nach Java portieren, bevor Sie unsere eigene Helper-Methode verwenden. Durchsuchen Sie den riesigen Javadoc-Index nach "sum", "add" und allen anderen Suchbegriffen. Sie könnten vermuten, dass jemand dies bereits für die primitiven Typen int, float, double, Integer, float, double getan hat? Egal wie einfach, es ist immer gut zu überprüfen. Halten Sie den Code so einfach wie möglich und erfinden Sie das Rad nicht neu.
int sum = 0;
for (int i = 0; i < myArray.length; i++)
sum += myArray[i];
}
Ich mag diese Methode persönlich. Mein Code-Stil ist etwas komisch.
public static int sumOf(int... integers) {
int total = 0;
for (int i = 0; i < integers.length; total += integers[i++]);
return total;
}
Ziemlich einfach im Code zu verwenden:
int[] numbers = { 1, 2, 3, 4, 5 };
sumOf(1);
sumOf(1, 2, 3);
sumOf(numbers);
Ich benutze das:
public static long sum(int[] i_arr)
{
long sum;
int i;
for(sum= 0, i= i_arr.length - 1; 0 <= i; sum+= i_arr[i--]);
return sum;
}
Du musst deine eigene rollen.
Sie beginnen mit einer Summe von 0. Dann betrachten Sie für jede ganze Zahl im Array die Summe. Wenn Sie keine Zahlen mehr haben, haben Sie die Summe.
Wenn es keine ganzen Zahlen gab, ist die Summe 0.
Aus dieser Übung können Sie zwei Dinge lernen:
Sie müssen die Elemente des Arrays irgendwie durchlaufen - dies können Sie mit einer for-Schleife oder einer while-Schleife tun .. Sie müssen das Ergebnis der Summation in einem Akkumulator speichern. Dazu müssen Sie eine Variable erstellen.
int accumulator = 0;
for(int i = 0; i < myArray.length; i++) {
accumulator += myArray[i];
}
Sie können Ihren Code folgendermaßen verbessern:
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;
}
Es gibt eine sum () - Methode in Underscore-Java library.
Code-Beispiel:
import com.github.underscore.lodash.U;
public class Main {
public static void main(String[] args) {
int sum = U.sum(Java.util.Arrays.asList(1, 2, 3, 4));
System.out.println(sum);
// -> 10
}
}
Verwenden Sie die folgende Logik
static int sum()
{
int sum = 0; // initialize sum
int i;
// Iterate through all elements and add them to sum
for (i = 0; i < arr.length; i++)
sum += arr[i];
return sum;
}
Es gibt keine 'Methode in einer Matheklasse' für so etwas. Es ist nicht wie eine Quadratwurzelfunktion oder so ähnlich.
Sie müssen nur eine Variable für die Summe haben und das Array durchlaufen, um jeden Wert, den Sie finden, zur Summe hinzuzufügen.
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 of all elements from 1 to 1000
*/
final int sum = Stream.iterate(1, n -> n + 1).limit(1000).mapToInt(el -> el).sum();
Wir können benutzerdefinierte Funktionen verwenden. Initialisieren Sie zunächst die Summenvariable gleich Null. Dann durchqueren Sie das Array und fügen Sie das Element mit der Summe hinzu. Aktualisieren Sie dann die Summenvariable.
Code-Auszug :
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);
}
}