1. Introducción
En este tutorial rápido, cubriremos cómo podemos calcular la suma y el promedio en una matriz utilizando los bucles estándar de Java y la API de transmisión .
2. Encuentre la suma de los elementos de la matriz
2.1. Suma usando un bucle for
Para encontrar la suma de todos los elementos en una matriz, simplemente podemos iterar la matriz y agregar cada elemento a una suma acumulandovariable.
Esto simplemente comienza con una suma de 0 y agrega cada elemento en la matriz a medida que avanzamos:
public static int findSumWithoutUsingStream(int[] array) { int sum = 0; for (int value : array) { sum += value; } return sum; }
2.2. Suma con la API de Java Stream
Podemos usar la API Stream para lograr el mismo resultado:
public static int findSumUsingStream(int[] array) { return Arrays.stream(array).sum(); }
Es importante saber que el método sum () solo admite flujos de tipo primitivo.
Si queremos usar una secuencia en un valor entero en caja , primero debemos convertir la secuencia en IntStream usando el método mapToInt .
Después de eso, podemos aplicar el método sum () a nuestro IntStream recién convertido :
public static int findSumUsingStream(Integer[] array) { return Arrays.stream(array) .mapToInt(Integer::intValue) .sum(); }
Puede leer mucho más sobre Stream API aquí.
3. Encuentre el promedio en una matriz de Java
3.1. Promedio sin la API Stream
Una vez que sepamos cómo calcular la suma de los elementos de la matriz, encontrar el promedio es bastante fácil, ya que Promedio = Suma de elementos / Número de elementos :
public static double findAverageWithoutUsingStream(int[] array) { int sum = findSumWithoutUsingStream(array); return (double) sum / array.length; }
Notas :
- Dividir un int por otro int devuelve un resultado int . Para obtener un promedio preciso, primero lanzamos la suma al doble .
- Java Array tiene un campo de longitud que almacena la cantidad de elementos en la matriz.
3.2. Promedio con la API de Java Stream
public static double findAverageUsingStream(int[] array) { return Arrays.stream(array).average().orElse(Double.NaN); }
IntStream.average () devuelve un OptionalDouble que puede no contener un valor y que necesita un manejo especial.
Lea más sobre Optionals en este artículo y sobre la clase OptionalDouble en la documentación de Java 8.
4. Conclusión
En este artículo, exploramos cómo encontrar la suma / promedio de elementos de matriz int .
Como siempre, el código está disponible en Github.