Inhalt
#foydali Stream API bilan ishlashda kodning o'qishga qulayligini, sintaktik shakarni oshirish maqsadida Javaning 16-versiyasidan terminal metodlardan biri — toList() metodi taqdim qilingan. Undan oldin streamda qayta ishlangan ma'lumotlarni olishda collect() metodi va toList() collector'i ishlatilinar edi. Ikkalasining yozilishdagi farqi tushunarli, lekin ishlatilishida farqi bormi? Ha, albatta farqi bor. Yangi terminal metod bizga immutable, ya'ni o'zgartirib bo'lmaydigan list qaytarib beradi. Olingan list ustida har qanday o'zgartirish uchun qilingan harakatlar UnsupportedOperationException xatoligi bilan "siylanadi". Eski holatdagi collect(Collectors.toList()) metodi esa, qayta ishlansa bo'ladigan to'plam qaytarib beradi. Agar bizga muayyan turdagi ma'lumotlar to'plami kerak bo'lsa, collect(Collectors.toCollection(HashSet::new)) metodini ishlatsak ko'zlangan maqsadga erishamiz. (HashSet o'rnida kerakli Collection turi yoziladi) @it_suhbat