Membandingkan kaedah map() dan flatMap() dalam Java 8 Streams
Strim dalam Java 8 menawarkan set operasi yang berkuasa untuk bekerja dengan koleksi data, termasuk map() dan flatMap(). Kedua-dua kaedah ini mengambil Strim sebagai input dan mengembalikan Strim baharu, tetapi ia berbeza dalam kelakuannya berdasarkan bilangan nilai output yang dihasilkan untuk setiap nilai input.
map()
- Menerima Fungsi yang menukarkan setiap nilai input kepada nilai output tunggal.
- Strim output mengandungi bilangan elemen yang sama seperti Strim input.
flatMap()
- Menerima Fungsi yang secara konsep menukar setiap nilai input kepada Strim sifar atau lebih nilai output.
- Strim output "diratakan" dengan mengumpulkan semua nilai output daripada Strim yang dipetakan menjadi satu Strim.
Perbezaan Utama
-
Saiz Output: map() menghasilkan satu nilai output untuk setiap nilai input, manakala flatMap() menghasilkan bilangan nilai output arbitrari untuk setiap nilai input.
-
Pemeta Fungsi: map() memerlukan Fungsi yang memetakan nilai input kepada nilai output, manakala flatMap() memerlukan Fungsi yang memetakan nilai input ke Strim.
Gunakan Kes
-
map(): Menukar setiap elemen dalam Strim menggunakan satu fungsi. Contohnya, menukar aliran rentetan kepada huruf besar.
-
flatMap(): Digunakan apabila anda perlu mengekstrak berbilang nilai daripada setiap elemen dalam Strim dan kemudian meratakan hasilnya menjadi satu Strim . Contohnya, meratakan Strim senarai menjadi Strim elemen individu.
Atas ialah kandungan terperinci Apakah Perbezaan Utama Antara `map()` dan `flatMap()` dalam Java 8 Streams?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!