Stream.map() lwn. Stream.flatMap() dalam Java 8
Stream.map() dan Stream.flatMap() ialah dua kaedah yang biasa digunakan dalam Java 8 yang melakukan transformasi serupa pada aliran nilai. Walau bagaimanapun, mereka mempunyai perbezaan asas dalam cara mereka memproses dan mengembalikan nilai.
Stream.map()
- Menerima Fungsi super T, ? memanjangkan R> sebagai hujah, dengan T ialah jenis input dan R ialah jenis output.
- Menggunakan fungsi yang diberikan pada setiap elemen dalam aliran input.
- Menghasilkan aliran baharu yang mengandungi nilai yang diubah, setiap satu sepadan dengan nilai input.
- Sebagai contoh, diberikan aliran integer, peta boleh digunakan untuk mengubah setiap integer menjadi segi empat sama.
Stream.flatMap()
- Menerima Fungsi super T, ? memanjangkan Strim memanjangkan R>> sebagai argumen, yang mengembalikan strim untuk setiap nilai input.
- Memanggil fungsi pada setiap elemen dalam strim input.
- Strim yang terhasil disatukan ke dalam satu strim, mewujudkan "flattened " output.
- Sebagai contoh, diberikan aliran rentetan, flatMap boleh digunakan untuk mengekstrak semua aksara individu ke dalam satu aliran aksara.
Perbezaan Utama
Perbezaan utama antara map() dan flatMap() terletak pada cara mereka mengendalikan hasil fungsi transformasi:
-
map() menghasilkan satu nilai yang diubah untuk setiap nilai input.
-
flatMap() menghasilkan sifar atau lebih nilai yang diubah untuk setiap nilai input.
Perbezaan ini mempengaruhi bentuk dan kandungan aliran yang terhasil. flatMap() membenarkan penciptaan strim bersarang, manakala map() mengekalkan dimensi yang sama dengan strim asal.
Atas ialah kandungan terperinci Apakah Perbezaan Utama Antara Stream.map() dan Stream.flatMap() dalam Java 8?. 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