Какво представлява интерфейсът за сравнение в Java с примери?

Kakvo Predstavlava Interfejs T Za Sravnenie V Java S Primeri



В Java интерфейсът Comparator се използва за дефиниране на функция за сравнение, която може да се използва за сортиране на колекция от обекти. Позволява сортиране на обекти въз основа на персонализирани критерии, а не сравнение по подразбиране въз основа на естествено подреждане. Има различни приложения за персонализиране на функциите според нуждите. Тази статия ще обясни интерфейса на Comparator заедно с множество примери в Java.

Какво представлява интерфейсът за сравнение в Java с примери?

Интерфейсът Comparator съдържа compare() и equals() методи. Първият метод се използва за изчисляване на два обекта чрез връщане на цяло число. Другият метод се използва за изчисляване на два сравнителни обекта за равенство.

Ето различни примери за това как да използвате интерфейса Comparator в Java:







Пример 1: Сортиране на списък въз основа на дължината

В този пример се разглежда списък от низове и сортирането им въз основа на дължината им вместо по азбучен ред:



импортиране java.util.ArrayList ;

импортиране java.util.Колекции ;

импортиране java.util.Comparator ;

импортиране java.util.List ;

публичен клас Основен {

публичен статичен невалиден основен ( низ [ ] аргументи ) {

списък < низ > списък = нов ArrayList <> ( ) ;

списък. добавете ( 'Джон' ) ;

списък. добавете ( 'Боб' ) ;

списък. добавете ( 'Алиса' ) ;

Колекции . вид ( списък ) ;

Система . навън . println ( списък ) ;

Колекции . вид ( списък, нов StringLengthComparator ( ) ) ;

Система . навън . println ( списък ) ;

}

} // Дефиниран е клас

клас StringLengthComparator инструменти Компаратор < низ > {

публичен вътр сравнявам ( низ s1, низ s2 ) {

връщане Цяло число . сравнявам ( s1. дължина ( ) , s2. дължина ( ) ) ;

}

}

Описанието на горния код е дадено по-долу:



  • Първо създайте персонализиран клас Comparator, наречен StringLengthComparator, който имплементира интерфейса Comparator.
  • Той отменя метода compare() за сравняване на дължината на два низа.
  • В крайна сметка предайте екземпляр към метода the.sort() за сортиране на списъка с помощта на нашия персонализиран компаратор.

Изход





Първият изход е резултат от сортиране на списъка чрез естествено подреждане, докато вторият изход е резултат от сортиране на списъка с помощта на нашия персонализиран компаратор въз основа на дължината на всеки низ.



Пример 2: Сортиране на обекти въз основа на конкретно поле

Друг пример се провежда за сортиране на обекти въз основа на конкретно поле. Интерфейсът Comparator се използва за постигане на това:

импортиране java.util.ArrayList ;

импортиране java.util.Колекции ;

импортиране java.util.Comparator ;

импортиране java.util.List ;

публичен клас Основен {

публичен статичен невалиден основен ( низ [ ] аргументи ) {

списък < Лице > лица = нов ArrayList <> ( ) ; // Задайте име, възраст и заплати

лица. добавете ( нов Лице ( 'Алиса' , 25 , 50 000 ) ) ;

лица. добавете ( нов Лице ( 'Боб' , 30 , 75 000 ) ) ;

лица. добавете ( нов Лице ( 'Чарли' , двадесет , 40 000 ) ) ;

Компаратор < Лице > salaryComparator = нов Компаратор < Лице > ( ) {

// Сортиране на лица въз основа на заплата

публичен вътр сравнявам ( Лице p1, Лице p2 ) {

връщане Цяло число . сравнявам ( p2. getSalary ( ) , p1. getSalary ( ) ) ;

}

} ;

Колекции . вид ( лица, заплатаComparator ) ; връщане сортиране на стойности

// Отпечатване на сортиран списък с лица

за ( Човек човек : лица ) {

Система . навън . println ( човек ) ;

}

}

}

клас Лице { // Определете име, възраст и заплата

частен низ име ; // обхват в клас
частен вътр възраст ;
частен вътр заплата ;

публичен Лице ( низ име, вътр възраст, вътр заплата ) {
това . име = име ;
това . възраст = възраст ;
това . заплата = заплата ;
}
публичен низ getName ( ) {
връщане име ;
}
публичен вътр getAge ( ) {
връщане възраст ;
}
публичен вътр getSalary ( ) {
връщане заплата ;
}
публичен низ toString ( ) {
връщане име + ' (възраст ' + възраст + ', заплата $' + заплата + ')' ;
}
}

Описанието на кода е дадено по-долу:

  • Клас, наречен „ Лице “ с три полета: „ име ”, “ възраст ', и ' заплата ' се счита.
  • След това сортирайте колекция от обекти Person в зависимост от тяхната заплата в низходящ ред.

Изход

Резултатът показва, че заплатите са сортирани в низходящ ред.

Заключение

В Java интерфейсът Comparator е мощен инструмент, който позволява на потребителите да сортират обекти въз основа на персонализирани критерии. Той замества метода compare(), потребителите могат да дефинират своя собствена функция за сравнение и да я използват за сортиране на колекции от обекти по различни начини. Тази статия обяснява интерфейса на Comparator заедно с практически примери в Java.