Java 배열의 모든 정수 합계를 찾는 데 문제가 있습니다. Math
클래스 에서 유용한 메소드를 찾을 수 없습니다 .
답변
에 자바 -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에 존재하지 않는 간단한 것 중 하나입니다 (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];
}