Javaで配列内のすべての整数の合計を見つけるのに問題があります。私はMath
クラスでこれに役立つメソッドを見つけることができません。
Java-8 では、ストリームを使用できます。
int[] a = {10,20,30,40,50};
int sum = IntStream.of(a).sum();
System.out.println("The sum is " + sum);
出力:
合計は150です。
Java.util.stream
パッケージに入っています
import Java.util.stream.*;
Java 8を使っている場合、 Arrays
クラスは stream(int[] array)
を提供します。指定されたIntStream
配列を持つシーケンシャル int
を返すメソッド。 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
最後に、T
型の配列を取ることができます。したがって、例として、入力として数字を含むString
を持つことができます。それらを合計したい場合は、次のようにします。
int sum = Arrays.stream("1 2 3 4".split("\\s+")).mapToInt(Integer::parseInt).sum();
これは、標準のJava APIにはない(残念ながら)単純なことの1つです。あなた自身のものを書くのは十分簡単です。
他の答えはまったく問題ありませんが、ここにそれぞれの構文糖を使ったものがあります。
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);
}
}
できません。他の言語には、PHPのarray_sum()のようなメソッドがいくつかありますが、Javaにはありません。
ただ….
int[] numbers = {1,2,3,4};
int sum = 0;
for( int i : numbers) {
sum += i;
}
System.out.println(sum);
Apache Mathでは:StatUtils.sum(double[] arr)
があります
私が以前の解決策に追加する唯一のポイントは、値のオーバーフローを回避するために合計を累積するのにlongを使用するということです。
int[] someArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, Integer.MAX_VALUE};
long sum = 0;
for (int i : someArray)
sum += i;
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
では、リダクションの概念を使って追加することができます。
私見合計関数は、fill、sort、search、copy、およびequalsが有効であるArraysクラスを拡張するのに適しているように思われます。 javadocには便利なメソッドがたくさん隠れているので、FortranをJavaに移植して独自のヘルパー・メソッドを実行する前に尋ねるのは公平な質問です。巨大なjavadocインデックスで "sum"、 "add"、その他考えられるキーワードを検索してください。あなたは確かに誰かがすでにint、float、double、Integer、Float、Doubleのプリミティブ型に対してこれを行っていると疑うかもしれません。どんなに単純であっても、チェックすることは常に良いことです。コードをできるだけ単純にして、車輪を再発明しないでください。
int sum = 0;
for (int i = 0; i < myArray.length; i++)
sum += myArray[i];
}
私はこの方法が個人的に好きです。私のコードスタイルは少し変です。
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);
私はこれを使う:
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;
}
あなたはあなた自身を転がさなければなりません。
あなたは合計0から始めます。それからあなたは配列の中のすべての整数について考えて、それを合計に加えます。それからあなたが整数の外にいるとき、あなたは合計を持っています。
整数がない場合、合計は0です。
この演習から学ぶべきことが2つあります。
あなたはどういうわけか配列の要素を反復処理する必要があります - あなたはforループまたはwhileループでこれを行うことができます。合計の結果をアキュムレータに保存する必要があります。これには、変数を作成する必要があります。
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;
}
アンダースコアJava ライブラリにsum()メソッドがあります。
コード例:
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
}
}
以下のロジックを使う
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;
}
そのようなことのための「数学クラスのメソッド」はありません。それはその平方根関数あるいはそのようなものが好きではありません。
あなたはただ合計のための変数を持っていて、あなたが合計にあなたが見つけるそれぞれの値を加える配列を通してループする必要があります。
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();
ユーザー定義関数を使用することがあります。最初に合計変数をゼロに初期化します。それから配列をたどり、sumを使って要素を追加します。その後、合計変数を更新します。
コードスニペット :
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);
}
}