Localizar soma e média em uma matriz Java
1. Introdução
Neste tutorial rápido, vamos cobrir como podemos calcular a soma e a média em uma matriz usando os loops padrão Java e a APIStream.
2. Localizar soma dos elementos da matriz
2.1. Soma usando um For Loop
Para encontrar a soma de todos os elementos em uma matriz,we can simply iterate the array and add each element to a sum accumulating __ variable.
Isso simplesmente começa comsum de 0 e adiciona cada item na matriz conforme avançamos:
public static int findSumWithoutUsingStream(int[] array) {
int sum = 0;
for (int value : array) {
sum += value;
}
return sum;
}
2.2. Soma com a API Java Stream
Podemos usar a API Stream para obter o mesmo resultado:
public static int findSumUsingStream(int[] array) {
return Arrays.stream(array).sum();
}
É importante saber que o métodosum() suporta apenasprimitive type streams.
Se quisermos usar um fluxo em um valorInteger em caixa, devemos primeiro converter o fluxo emIntStream usando o métodomapToInt.
Depois disso, podemos aplicar o métodosum() ao nossoIntStream recém-convertido:
public static int findSumUsingStream(Integer[] array) {
return Arrays.stream(array)
.mapToInt(Integer::intValue)
.sum();
}
Você pode ler muito mais sobre o Stream APIhere.
3. Encontrar média em uma matriz Java
3.1. Média sem a API Stream
Uma vez que sabemos como calcular a soma dos elementos da matriz, encontrar a média é muito fácil - comoAverage = Sum of Elements / Number of Elements:
public static double findAverageWithoutUsingStream(int[] array) {
int sum = findSumWithoutUsingStream(array);
return (double) sum / array.length;
}
Notes:
-
Dividir umint por outroint retorna um resultado deint. To get an accurate average, we first cast sum to double.
-
JavaArray tem um campolength que armazena o número de elementos no array.
3.2. Média usando a API Java Stream
public static double findAverageUsingStream(int[] array) {
return Arrays.stream(array).average().orElse(Double.NaN);
}
IntStream.average() retorna umOptionalDouble que pode não conter um valor e que precisa de um tratamento especial.
Leia mais sobreOptionals no artigothis e sobre a classeOptionalDouble emJava 8 Documentation.
4. Conclusão
Neste artigo, exploramos como encontrar a soma / média dos elementos do arrayint.
Como sempre, o código está disponívelover on Github.