[java] Java 배열에서 모든 숫자의 합계를 어떻게 찾습니까?

Java 배열의 모든 정수 합계를 찾는 데 문제가 있습니다. Math클래스 에서 유용한 메소드를 찾을 수 없습니다 .



답변

스트림을 사용할 수 있습니다 :

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)로 순차적을 반환하는 메소드를 제공합니다 . 또한 과부하되었습니다 및 배열.IntStreamintdoublelong

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에 존재하지 않는 간단한 것 중 하나입니다 (AFAIK). 직접 작성하는 것은 쉽습니다.

다른 답변은 완벽하지만 여기에는 각각의 구문 설탕이 있습니다.

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


답변

아파치 수학 : StatUtils.sum(double[] arr)


답변

이전 솔루션에 추가 할 수있는 유일한 포인트는 값의 오버플로를 피하기 위해 총계를 누적하는 데 오래 사용할 것입니다.

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