Rumah  >  Artikel  >  Java  >  Strim API dalam Java 8: Cara menggunakan kaedah reduce() untuk melaksanakan operasi pengagregatan pada koleksi

Strim API dalam Java 8: Cara menggunakan kaedah reduce() untuk melaksanakan operasi pengagregatan pada koleksi

王林
王林asal
2023-07-30 22:07:581159semak imbas

API Strim dalam Java 8: Cara menggunakan kaedah reduce() untuk melaksanakan operasi pengagregatan pada koleksi

Pengenalan:
Di Java 8, API Strim telah diperkenalkan, yang menyediakan cara yang lebih berkuasa dan mudah untuk memproses data pengumpulan . Kaedah reduce() dalam Stream API memainkan peranan penting dalam operasi pengagregatan koleksi. Artikel ini akan memperkenalkan penggunaan kaedah reduce() dan memberikan beberapa contoh kod.

1. Gambaran keseluruhan kaedah reduce()
Kaedah reduce() ialah salah satu kaedah teras dalam API Strim untuk operasi pengagregatan pada koleksi. Ia menerima parameter jenis BinaryOperator, yang mentakrifkan cara elemen koleksi diagregatkan. Kaedah reduce() menggunakan operasi pengagregatan pada elemen koleksi satu demi satu dan mengembalikan hasil pilihan. Kaedah

reduce() mempunyai dua versi terlampau beban:

  1. T reduce(T identiti, BinaryOperator8742468051c85b06f0a0af9e3e506b5c accumulator)
  2. Pilihan8742468051c85b06f0a0af9e3e506b5c reduce(BinaryOperator8742468051c85b06f0a0af9e3e506b5c accumulator(Versi pertama) ) kaedah menerima identiti nilai awal dan penumpuk pengendali binari. Ia mengambil nilai awal sebagai titik permulaan pengiraan dan menggunakan setiap elemen pada penumpuk, akhirnya mengembalikan hasil agregat.
Versi kedua kaedah reduce() hanya menerima penumpuk pengendali binari. Ia tidak memberikan nilai awal, jadi ia mengembalikan objek Pilihan yang mewakili hasil yang mungkin.

2. Contoh penggunaan kaedah reduce()

Berikut ialah beberapa contoh kod yang menunjukkan penggunaan kaedah reduce() yang berbeza:

Jumlah elemen set:
    Senaraikanc0f559cc8d56b43654fcbe4aa9df7b4a asList( 1, 2, 3, 4, 5);
  1. int sum = numbers.stream()

             .reduce(0, (a, b) -> a + b);

    System.out.println(sum); // Output: 15

    Cari nilai maksimum set elemen:
  2. Senaraikan< ;Integer> nombor = Arrays.asList(1, 2, 3, 4, 5);
  3. Pilihanc0f559cc8d56b43654fcbe4aa9df7b4a maks = numbers.stream()

                            .reduce(Integer::max);

    System.out.println(0.orElse )); // Output: 5

    Concatenate strings:
  4. Listf7e83be87db5cd2d9a8a0b8117b38cd4 strings = Arrays.asList("Java", "Stream", "API");
  5. String result = strings.stream()

                    .reduce("", (a, b) -> a + " " + b);

    System.out.println(result); // Output: Java Stream API

    Operasi pengagregatan tersuai:
  6. Senarai8b40fc96845a49866d2abb8faa567db0 orang = Arrays.asList(
  7. Orang baharu("Alice",

    Orang baharu ("Bob", 30),
    Orang baharu("Charlie", 25)
    );
    int totalAge = people.stream()

                  .reduce(0, (sum, p) -> sum + p.getAge(), (a, b) -> a + b);

    System.out.println(totalAge); // Output: 75

    Dalam contoh ini, kami menggunakan pengendali binari tersuai untuk menjumlahkan umur objek Orang.
Kesimpulan: Kaedah

reduce() adalah salah satu kaedah penting dalam API Strim untuk operasi pengumpulan pengumpulan. Melalui kaedah reduce(), kita boleh melakukan operasi seperti menjumlahkan elemen set, mengambil nilai maksimum dan rentetan penggabungan. Dalam pembangunan sebenar, kami boleh menyesuaikan pengendali binari mengikut keperluan untuk melaksanakan operasi pengagregatan yang lebih kompleks. Mahir menggunakan kaedah reduce() boleh menjadikan kod kami lebih ringkas dan cekap.

Atas ialah kandungan terperinci Strim API dalam Java 8: Cara menggunakan kaedah reduce() untuk melaksanakan operasi pengagregatan pada koleksi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn