Cari Jumlah dan Purata dalam Array Java

1. Pengenalan

Dalam tutorial ringkas ini, kita akan membahas bagaimana kita dapat mengira jumlah & rata-rata dalam array menggunakan kedua-dua gelung standard Java dan Stream API.

2. Cari Jumlah Elemen Array

2.1. Sum Menggunakan Untuk Loop

Untuk mencari jumlah semua elemen dalam suatu array, kita hanya dapat mengulangi array dan menambahkan setiap elemen ke jumlah yang terkumpulpemboleh ubah.

Ini hanya bermula dengan jumlah 0 dan tambahkan setiap item dalam array semasa kita pergi:

public static int findSumWithoutUsingStream(int[] array) { int sum = 0; for (int value : array) { sum += value; } return sum; }

2.2. Jumlahkan Dengan Java Stream API

Kita boleh menggunakan Stream API untuk mencapai hasil yang sama:

public static int findSumUsingStream(int[] array) { return Arrays.stream(array).sum(); }

Penting untuk mengetahui bahawa kaedah sum () hanya menyokong aliran jenis primitif.

Sekiranya kita ingin menggunakan aliran pada nilai Integer berkotak , kita mesti mengubah aliran menjadi IntStream terlebih dahulu menggunakan kaedah mapToInt .

Selepas itu, kita dapat menerapkan kaedah sum () pada IntStream yang baru kita ubah :

public static int findSumUsingStream(Integer[] array) { return Arrays.stream(array) .mapToInt(Integer::intValue) .sum(); }

Anda boleh membaca lebih banyak lagi mengenai API Aliran di sini.

3. Cari Purata dalam Array Java

3.1. Rata-rata Tanpa API Aliran

Setelah kita mengetahui cara mengira jumlah elemen array, mencari rata-rata cukup mudah - seperti Purata = Jumlah Elemen / Bilangan Unsur :

public static double findAverageWithoutUsingStream(int[] array) { int sum = findSumWithoutUsingStream(array); return (double) sum / array.length; }

Catatan :

  1. Membahagikan satu int oleh satu lagi int mengembalikan int keputusan. Untuk mendapatkan purata tepat, kami cast pertama jumlah wang untuk menggandakan .
  2. Java Array mempunyai medan panjang yang menyimpan bilangan elemen dalam array.

3.2. Rata-rata Menggunakan Java Stream API

public static double findAverageUsingStream(int[] array) { return Arrays.stream(array).average().orElse(Double.NaN); }

IntStream.average () mengembalikan OptionalDouble yang tidak boleh mengandungi nilai dan yang memerlukan pengendalian khas.

Baca lebih lanjut mengenai Opsyen dalam artikel ini dan mengenai kelas OpsionalDouble dalam Java 8 Documentation.

4. Kesimpulan

Dalam artikel ini, kami meneroka cara mencari jumlah / purata elemen array int .

Seperti biasa, kodnya terdapat di Github.