Taqdimot ishi.
To‘plamga oqim elementlarini to‘plash - To‘plamga oqim elementlarini to‘plash
- toList() va toSet() bilan to'plang
- Stream.collect operatsiyasidan foydalangan holda Streamdagi elementlar osongina konteynerga to'planishi mumkin:
To'plam kabi boshqa yig'ish misollari boshqa Collectors o'rnatilgan usullari yordamida amalga oshirilishi mumkin. Masalan, Collectors.toSet() oqim elementlarini to'plamga to'playdi. Ro'yxat yoki to'plamni amalga oshirish ustidan aniq nazorat Collectors toList() va Collectors toSet() hujjatlariga ko'ra, hech qanday kafolatlar yo'q. Qaytarilgan ro'yxat yoki to'plamning turi, o'zgaruvchanligi, seriyali bo'lishi yoki ip xavfsizligi. Amalga oshirish ustidan aniq nazorat qaytarilishi uchun Collectors#toCollection(Yetkazib beruvchi) dan foydalanish mumkin Buning o'rniga, berilgan yetkazib beruvchi yangi va bo'sh to'plamni qaytarsa. toMap yordamida elementlarni yig'ish Kollektor elementlarni Xaritada to'playdi, bu erda kalit talaba identifikatori va qiymat talaba qiymati hisoblanadi. takroriy kalit uchun yangi qiymat qo'yish. To'plamlar xaritasiga elementlarni yig'ish Misol: ArrayList dan Map, List<>> ga Ko'pincha asosiy ro'yxatdan ro'yxat xaritasini tuzish kerak bo'ladi. Misol: Ro'yxatdagi talabadan biz xaritani tuzishimiz kerak har bir talaba uchun fanlar ro'yxati. Cheat-sheet Maqsad kodi Collectors.toList() roʻyxatiga yigʻing Oldindan ajratilgan o'lchamli ArrayListga to'plang Collectors.toCollection(() -> yangi ArrayList<>(o'lcham)) To'plamga yig'ing Collectors.toSet() Yaxshiroq iteratsiyaga ega to'plamga to'plang ishlash Collectors.toCollection(() -> yangi LinkedHashSet<>()) Katta-kichik harfga to'plang O'rnatish Collectors.toCollection(() -> yangi TreeSet<>(String.CASE_INSENSITIVE_ORDER)) EnumSet ga yig'ing (eng yaxshi enumlar uchun ishlash) Collectors.toCollection(() -> EnumSet.noneOf(AnEnum.class)) GoalKicker.com – Professionallar uchun Java® eslatmalari 334 Collectors.toMap(keyFunc,valFunc) noyob kalitlari bilan xaritasiga yig'ing. MyObject.getter() ni noyob bilan xaritalang MyObject Collectors.toMap(MyObject::getter, Function.identity()) MyObject.getter() ni bir nechtaga xaritalang MyObjects Collectors.groupingBy(MyObject::getter)
2 – MAVZU
Oqimlarni yopish Ko'pgina oqimlar ular bilan ishlashni tugatgandan so'ng yopilishi kerak, aks holda siz xotira oqishini kiritishingiz yoki tark etishingiz mumkin ochiq fayl. Istisno tashlangan bo'lsa ham, oqimlar yopiq bo'lishi muhimdir. Esingizda bo'lsin: resurslarni sinab ko'rish blokdan chiqqanda resurslar yopilganligini kafolatlaydi. - Esingizda bo'lsin: resurslarni sinab ko'rish blokdan chiqqanda resurslar yopilganligini kafolatlaydi.
- Bu odatiy boshqaruv oqimi bilan yoki istisno tufayli sodir bo'ladi.
- Versiya ≤ Java SE 6
- Ba'zan, resurslar bilan sinab ko'rish variant emas yoki ehtimol siz Java 6 yoki undan oldingi eski versiyasini qo'llab-quvvatlayotgandirsiz. Bunda
- Bunday holda, to'g'ri ishlash finally blokidan foydalanishdir:
- Esda tutingki, o'rash oqimini yopish uning asosiy oqimini ham yopadi. Bu shuni anglatadiki, siz oqimni o'ra olmaysiz,
- o'ramni yoping va keyin asl oqimdan foydalanishni davom eting.
T U G A D I !
ETIBORINGIZ UCHUN RAXMAT
Do'stlaringiz bilan baham: |