Rumah  >  Artikel  >  Java  >  Apakah Perbezaan Utama Antara Stream.map() dan Stream.flatMap() dalam Java 8?

Apakah Perbezaan Utama Antara Stream.map() dan Stream.flatMap() dalam Java 8?

DDD
DDDasal
2024-11-19 10:41:02845semak imbas

What's the Key Difference Between Stream.map() and Stream.flatMap() in Java 8?

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 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> 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