Rumah > Java > javaTutorial > 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

王林
Lepaskan: 2023-07-30 22:07:58
asal
1238 orang telah melayarinya

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, BinaryOperator accumulator)
  2. Pilihan reduce(BinaryOperator 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:
    Senaraikan asList( 1, 2, 3, 4, 5);
  1. int sum = numbers.stream()

             .reduce(0, (a, b) -> a + b);
    Salin selepas log masuk

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

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

                            .reduce(Integer::max);
    Salin selepas log masuk

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

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

                    .reduce("", (a, b) -> a + " " + b);
    Salin selepas log masuk

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

    Operasi pengagregatan tersuai:
  6. Senarai 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);
    Salin selepas log masuk

    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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan