Ich habe ein Problem, die Summe aller Ganzzahlen in einem Array in Java zu finden. Ich kann dafür keine sinnvolle Methode in der Klasse Math
finden.Wie finden Sie die Summe aller Zahlen in einem Array in Java?
Antwort
Sie müssen Ihre eigenen rollen.
Sie beginnen mit insgesamt 0. Dann berücksichtigen Sie für jede Ganzzahl im Array, fügen Sie es zu einem Gesamtwert hinzu. Wenn du keine ganzen Zahlen mehr hast, hast du die Summe.
Wenn es keine ganzen Zahlen waren, dann ist die Gesamt ist 0.
define a sum variable = 0
for each number in array:
sum = sum + number
int sum = 0;
for (int i = 0; i < yourArray.length; i++)
{
sum = sum + yourArray[i];
}
Mit einer for-each-Schleife (eingeführt in Java 1.5) können Sie es noch schöner machen. – birryree
Sie können nicht. Andere Sprachen haben einige Methoden dafür wie array_sum() in PHP, aber Java nicht.
Gerade ..
int[] numbers = {1,2,3,4};
int sum = 0;
for(int i : numbers) {
sum += i;
}
System.out.println(sum);
Ich vermisse dich .NET Summe (IEnumerable
Es gibt keine 'Methode in einem Mathe-Unterricht' für so etwas. Es ist nicht wie eine Quadratwurzelfunktion oder so ähnlich.
Sie müssen nur eine Variable für die Summe und Schleife durch das Array haben, die jeden gefundenen Wert zur Summe addiert.
int sum = 0;
for (int i = 0; i < myArray.length; i++)
sum += myArray[i];
}
Es gibt zwei Dinge aus dieser Übung zu lernen:
Sie müssen irgendwie durch die Elemente des Arrays iterieren - Sie können dies für Schleife oder einer while-Schleife mit einem tun. Sie müssen das Ergebnis der Summierung 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];
}
Dies ist eines dieser einfachen Dinge, die nicht in der Standard-Java-API (AFAIK) existieren. Es ist einfach genug, um Ihre eigenen zu schreiben.
Andere Antworten sind völlig in Ordnung, aber hier ist einer mit einigen 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;
Auch ein Beispiel für Array Summierung sogar shown in the Java 7 Language Specification. Das Beispiel stammt von Abschnitt 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);
}
}
Sie können Ihren Code besser aussehen wie diese machen:
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;
}
Der einzige Punkt, den ich bisherigen Lösungen hinzufügen würde, ist, dass ich eine lange verwenden würde die Gesamt zu akkumulieren jeden Überlauf des Wertes 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;
IMHO eine Summenfunktion eine gute Passform zu leben der Klasse Arrays zu erweitern, in dem fill, sortieren, suchen, kopieren, & gleich erscheinen würde. Es gibt eine Menge praktischer Methoden, die sich in den Javadocs verstecken, also ist es eine faire Frage, wenn man Fortran nach Java portiert, bevor man unsere eigene Hilfsmethode aufruft. Durchsuchen Sie den riesigen Javadoc-Index nach "sum", "add" und jedem anderen Keyword, das Ihnen einfällt. Sie könnten vermuten, dass jemand dies bereits für primitive 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.
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);
}
}
dude es ist sum = sum + a [i]; –
Sobald java-8 ist aus (März 2014) Sie werden in der Lage sein Ströme zu verwenden:
int[] a = {10,20,30,40,50};
int sum = IntStream.of(a).sum();
System.out.println("The sum is " + sum);
Ausgang:
Die Summe ist 150.
Es ist im Paket java.util.stream
import java.util.stream.*;
Was passiert, wenn Array große Zahlen enthält und die Summe nicht im Gültigkeitsbereich liegt? – thanhbinh84
In diesem Fall können Sie LongStream verwenden, entweder als long sum = IntStream.of (a) .asLongStream(). Sum(); oder long sum = LongStream.of (a) .sum(); – msayag
Gibt es einen erheblichen Geschwindigkeitsvorteil bei der Verwendung von Streams? – Mvorisek
Ich mag diese Methode persönlich. Mein Code-Stil ist ein bisschen komisch.
public static int sumOf(int... integers) {
int total = 0;
for (int i = 0; i < integers.length; total += integers[i++]);
return total;
}
Ziemlich einfach in Code zu verwenden:
int[] numbers = { 1, 2, 3, 4, 5 };
sumOf(1);
sumOf(1, 2, 3);
sumOf(numbers);
In Apache Mathe: Es gibt StatUtils.sum(double[] arr)
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
}
}
Kopie der vorhandenen Antwort. –
Wenn Sie 8 Java verwenden sind, die Arrays
Klasse eine stream(int[] array)
Methode liefert die eine sequentielle IntStream
mit der angegebenen int
Array zurückgibt. Es wurde auch für double
und long
Arrays überlastet.
int [] arr = {1,2,3,4};
int sum = Arrays.stream(arr).sum(); //prints 10
Es stellt auch ein Verfahren stream(int[] array, int startInclusive, int endExclusive)
, die Sie einen bestimmten Bereich des Arrays zu nehmen erlaubt (die nützlich sein können):
int sum = Arrays.stream(new int []{1,2,3,4}, 0, 2).sum(); //prints 3
Schließlich kann es T
einen Array vom Typ nehmen. So können Sie pro Beispiel eine String
haben, die Zahlen als Eingabe enthält und wenn man sie fassen will nur tun:
int sum = Arrays.stream("1 2 3 4".split("\\s+")).mapToInt(Integer::parseInt).sum();
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);
}
}
Ich benutze diese:
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;
}
C-Programmierer, wie? – towi
In 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());
Ausgang:
The summation of array is 15
Another way to find summation :15
Erklärung:
In Java 8
können Sie Reduktion Konzept verwenden, um Ihre Zusätzlich zu tun.
Ab Java 8 Die Verwendung von Lambda-Ausdrücke verfügbar geworden.
sehen:
int[] nums = /** Your Array **/;
Compact:
int sum = 0;
Arrays.asList(nums).stream().forEach(each -> {
sum += each;
});
Bevorzugen:
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;
});
Return oder Druck Summe.
Es gibt eine sum() - Methode in underscore-lodash Bibliothek.
Code-Beispiel:
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
}
}
Wir können benutzerdefinierte Funktion verwenden. Zuerst initialisiere die Summenvariable gleich Null. Dann durchqueren Sie das Array und fügen Sie ein Element mit sum ein. Aktualisieren Sie dann die Summenvariable.
Code Snippet:
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);
}
}
- 1. Berechnen Sie die Summe aller Zahlen in einem Speicherblock und die Summe aller Elemente in einem Array
- 2. Summe aller Zahlen
- 3. Summe aller Zahlen foreach count in PHP-Array
- 4. bekomme die Summe zwischen dem Unterschied der Zahlen in einem Array in JAVA
- 5. Wie kann ich die Summe jedes einzelnen Elements in einem Array von langen Zahlen finden?
- 6. Ermitteln der Summe aller Elemente in einem 2D-Array
- 7. berechnen Summe aller Zahlen in c: foreach-Schleife
- 8. Wie in Array gespeichert Summe der Zahlen in einem String finden
- 9. Min/Max-Zahlen in einem Java-Array finden
- 10. Max Summe in einem 2d Array Java
- 11. Summe aller Werte aus einem PHP-Array
- 12. Um die maximale aufeinanderfolgende Summe von ganzen Zahlen in einem Array zu finden
- 13. lcm aller Zahlen in einem Array in C++
- 14. wo ich falsch bin beim Finden der maximalen zusammenhängenden Summe aller Zahlen in diesem Code?
- 15. Finden Sie die Summe aller Zahlen zwischen 1 und N teilbar durch entweder x oder y
- 16. Finden Sie die Summe aller Primzahlen unter zwei Millionen.Mein Programm funktioniert nicht für sehr große Zahlen
- 17. Python Index aller Array-Elemente in einem anderen Array finden
- 18. versucht, eine Summe aller Zahlen in einem Array größer als 200 zu ziehen und anzuzeigen
- 19. So finden Sie die Summe der Anzahl Layer in NDarray
- 20. Finden Sie die maximale Summe möglich
- 21. Wie finden Sie 3 größte gerade Zahlen in einem Array mit C?
- 22. Finden Sie die maximale Summe der Elemente im Array
- 23. Summe aller Werte in einem Feld SQL
- 24. Summe aller Werte in einem Datenrahmen
- 25. Was ist die beste Antwort für die maximale Summe möglich in einem Array zu finden
- 26. Finden Sie die Summe der Fibonacci-Reihe
- 27. Die Summe der zwei größten Zahlen von 3 finden
- 28. Finden Sie "Nummer" in einem 2d-Array
- 29. Finden Sie die größten 10% der Zahlen in einem Array in Reihenfolge
- 30. Summe aller Werte aller Schlüssel, wenn Schlüsselwerte in einem mehrdimensionalen Array übereinstimmen
Ihre eigenen schreiben, wird der Code, es zu tun 2-3 Zeilen lang. – birryree
Leider sind die obigen (und folgenden) "Antworten" "The Java Way": -/Sie könnten die [Functional Java library] (http://www.functionaljava.org/) verwenden, aber es ist so umständlich, damit umzugehen die Java-Syntax. –
Ich weiß, dass diese Frage extrem alt ist, aber die [Antwort von Msayag] (http://Stackoverflow.com/a/17846344/1946345) unten scheint, wie es als die akzeptierte Antwort markiert sein sollte. –