Java Util компаратору функционалдык интерфейспи?
Java Util компаратору функционалдык интерфейспи?

Video: Java Util компаратору функционалдык интерфейспи?

Video: Java Util компаратору функционалдык интерфейспи?
Video: Урок по Java 51: Сортировка коллекций и интерфейсы - Comparable и Comparator 2024, Ноябрь
Anonim

Киришүү. The салыштыруучу интерфейс коллекциялардагы объектилерди салыштыруу жана сорттоо болгон өзүнүн маңызын сактап калуу менен Java8де капиталдык оңдоодон өттү. Салыштыргыч азыр lambda туюнтмалары аркылуу декларацияларды колдойт, анткени a Функционалдык интерфейс . Бул жерде жөнөкөй булак коду болуп саналат java.

Буга байланыштуу, компаратор функционалдык интерфейспи?

Javaдагы бардык объекттер буга чейин equals() методун ишке ашырууга ээ, анткени алар аны Object классынан мурастап алышат. Ошентип, Салыштыргыч болуп саналат функционалдык интерфейс анткени бир гана ишке ашырылбаган абстракттуу ыкма бар: салыштыруу(T o1, T o2).

Ошондой эле сурашы мүмкүн, компаратор Java эмне кылат? Java Comparator сорттоо үчүн интерфейс болуп саналат Java объектилер. Чакырган " java . салыштыруучу ,” Java Comparator экөөнү салыштырат Java объекттерди "салыштыруу(Объект 01, Объект 02)" форматында. Конфигурациялануучу ыкмаларды колдонуу, Java Comparator оң, бирдей же терс салыштыруунун негизинде бүтүн санды кайтаруу үчүн объекттерди салыштыра алат.

Кошумча, Java'да функционалдык интерфейсти колдонуу эмне?

А функционалдык интерфейс болуп саналат интерфейс бир гана абстрактуу ыкмасын камтыйт. Алар көрсөтүү үчүн бир гана функцияга ээ болушу мүмкүн. From Java 8ден кийин, ламбда туюнтмалары а үлгүсүн көрсөтүү үчүн колдонулушу мүмкүн функционалдык интерфейс . Runnable, ActionListener, Comparable айрым мисалдар функционалдык интерфейстер.

Lambda функционалдык интерфейстер үчүн ганабы?

Ооба, ламбда туюнтмаларды колдонсо болот гана ичинде абстракттуу ыкманы ишке ашыруу а функционалдык интерфейс . Java объектиге багытталган тил, ал эми ламбда туюнтмалар а функционалдык өзгөчөлүгү. кошуу үчүн ламбда Java үчүн экспрессиялык колдоо, Java 8 киргизүүнү чечти функционалдык интерфейстер.

Сунушталууда: