Apabila bekerja dengan Java Streams, pembangun sering menghadapi situasi di mana mereka menggunakan kedua-dua kaedah groupingBy() dan reducing () pengumpul untuk memanipulasi data mereka. Walau bagaimanapun, terdapat pendekatan yang lebih cekap menggunakan kaedah toMap() dalam kes tertentu.
Apakah Coraknya?
Seperti yang ditunjukkan oleh @Holger dalam sebelumnya perbincangan, telah diperhatikan bahawa apabila menggunakan pengumpul pengurangan dengan groupingBy, selalunya lebih sesuai untuk menggunakan pengumpul toMap sebaliknya. Corak ini terbukti melalui pengalaman dan pemerhatian daripada pelbagai perbincangan Stackoverflow.
Mengapa toMap() Diutamakan
Pengumpul yang berkumpulBy mengharapkan Pengumpul kedua sebagai hujah, menjadikannya sesuai untuk menggunakan Pengurangan Boleh Berubah kepada kumpulan data. Sebaliknya, pengumpul toMap dengan fungsi gabungan adalah sesuai untuk Pengurangan klasik. Fungsi gabungan dalam toMap mempunyai tujuan dan bentuk yang serupa dengan fungsi Pengurangan, walaupun ia tidak dilabelkan sedemikian.
Secara praktiknya, pengumpul yang melakukan Pengurangan mengembalikan Pilihan, yang tidak selalu diingini apabila menggunakan perkumpulanOleh. Di sinilah toMap masuk, kerana ia mengendalikan kes sedemikian dengan lebih lancar.
Corak Tambahan
Walaupun corak khusus ini telah dikenal pasti, terdapat kemungkinan lebih banyak corak yang menjadi jelas semasa menggunakan API ini. Walau bagaimanapun, mengumpul kesemuanya dalam satu jawapan adalah di luar skop Stackoverflow. Pembangun digalakkan untuk meneroka API ini dengan lebih lanjut dan berkongsi pengalaman mereka untuk mendedahkan corak tambahan dan amalan terbaik.
Atas ialah kandungan terperinci Bila Menggunakan toMap() Daripada GroupingBy dan Mengurangkan dalam Java Streams?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!