Java Util komparatori funktsional interfeysmi?
Java Util komparatori funktsional interfeysmi?

Video: Java Util komparatori funktsional interfeysmi?

Video: Java Util komparatori funktsional interfeysmi?
Video: Александр Маторин, Сбербанк-Технологии — Рефакторинг в функциональном стиле 2024, Qadam tashlamoq
Anonim

Kirish. The taqqoslash interfeysi Java8-da katta ta'mirdan o'tdi, shu bilan birga o'zining mohiyatini saqlab qoldi, ya'ni kolleksiyalardagi ob'ektlarni solishtirish va saralash. Taqqoslovchi endi lambda ifodalari orqali deklaratsiyalarni qo'llab-quvvatlaydi, chunki u a Funktsional interfeys . Buning uchun oddiy manba kodi java.

Shu munosabat bilan, komparator funktsional interfeysmi?

Java'dagi barcha ob'ektlar allaqachon teng() usulini amalga oshirishga ega, chunki ular uni Object sinfidan meros qilib oladi. Shunday qilib, Taqqoslovchi a funktsional interfeys chunki faqat bitta bajarilmagan mavhum usul mavjud: solishtiring (T o1, T o2).

Kimdir so'rashi mumkin, solishtiruvchi Java nima qiladi? Java solishtirgich saralash interfeysi hisoblanadi Java ob'ektlar. tomonidan chaqirilgan java . solishtiruvchi ,” Java solishtirgich ikkini solishtiradi Java ob'ektlarni "taqqoslash (Ob'ekt 01, Ob'ekt 02)" formatida. Sozlanishi mumkin bo'lgan usullardan foydalanish, Java solishtirgich musbat, teng yoki salbiy taqqoslash asosida butun sonni qaytarish uchun ob'ektlarni solishtirishi mumkin.

Bundan tashqari, Java-da funktsional interfeysdan foydalanish nima?

A funktsional interfeys hisoblanadi interfeys unda faqat bitta mavhum usul mavjud. Ular ko'rsatish uchun faqat bitta funktsiyaga ega bo'lishi mumkin. Kimdan Java 8 dan keyin lambda ifodalari a misolini ifodalash uchun ishlatilishi mumkin funktsional interfeys . Runnable, ActionListener, Comparable ba'zi misollardir funktsional interfeyslar.

Lambda faqat funktsional interfeyslar uchunmi?

Ha, lambda ifodalardan foydalanish mumkin faqat a ichida mavhum usulni amalga oshirish funktsional interfeys . Java ob'ektga yo'naltirilgan tildir, holbuki lambda ifodalar a funktsional xususiyat. Qo'shish uchun lambda Java-ga ifodali yordam, Java 8-ni joriy etishga qaror qildi funktsional interfeyslar.

Tavsiya: