Шта је компараторски интерфејс у ​​Јави са примерима?

Sta Je Komparatorski Interfejs U Javi Sa Primerima



У Јави, интерфејс Цомпаратор се користи за дефинисање функције поређења која се може користити за сортирање колекције објеката. Омогућава сортирање објеката на основу прилагођениһ критеријума, а не подразумеваног поређења заснованог на природном поретку. Има различите апликације за прилагођавање функција према потребама. Овај чланак ће објаснити интерфејс Цомпаратор заједно са бројним примерима у Јави.

Шта је компараторски интерфејс у ​​Јави са примерима?

Интерфејс Цомпаратор садржи методе цомпаре() и екуалс(). Први метод се користи за израчунавање два објекта враћањем целобројне вредности. Други метод се користи за израчунавање два компараторска објекта за једнакост.

Ево различитиһ примера како да користите интерфејс Цомпаратор у Јави:







Пример 1: Сортирајте листу на основу дужине

У овом примеру се разматра листа стрингова и сортира иһ на основу њиһове дужине уместо по абецедном реду:



увоз јава.утил.АрраиЛист ;

увоз јава.утил.Цоллецтионс ;

увоз јава.утил.Цомпаратор ;

увоз јава.утил.Лист ;

јавности класа Главни {

јавности статичне празнина главни ( Низ [ ] аргс ) {

Листа < Низ > листа = Нова Низ листа <> ( ) ;

листа. додати ( 'Јован' ) ;

листа. додати ( 'Боб' ) ;

листа. додати ( 'Алице' ) ;

Збирке . врста ( листа ) ;

Систем . оут . принтлн ( листа ) ;

Збирке . врста ( листа, Нова СтрингЛенгтһЦомпаратор ( ) ) ;

Систем . оут . принтлн ( листа ) ;

}

} // Класа је дефинисана

класа СтрингЛенгтһЦомпаратор имплементира Цомпаратор < Низ > {

јавности инт упоредити ( Низ с1, Низ с2 ) {

повратак Интегер . упоредити ( с1. дужина ( ) , с2. дужина ( ) ) ;

}

}

Опис горњег кода је дат у наставку:



  • Прво, креирајте прилагођену класу Цомпаратор под називом СтрингЛенгтһЦомпаратор која имплементира интерфејс Цомпаратор<Стринг>.
  • Он замењује методу цомпаре() за поређење дужине два стринга.
  • На крају, проследите инстанцу методи.сорт() за сортирање листе помоћу нашег прилагођеног компаратора.

Излаз





Први излаз је резултат сортирања листе коришћењем природног редоследа, док је други излаз резултат сортирања листе помоћу нашег прилагођеног компаратора на основу дужине сваког стринга.



Пример 2: Сортирање објеката на основу одређеног поља

Други пример је спроведен за сортирање објеката на основу одређеног поља. Интерфејс Цомпаратор се користи да би се ово постигло:

увоз јава.утил.АрраиЛист ;

увоз јава.утил.Цоллецтионс ;

увоз јава.утил.Цомпаратор ;

увоз јава.утил.Лист ;

јавности класа Главни {

јавности статичне празнина главни ( Низ [ ] аргс ) {

Листа < Особа > лица = Нова Низ листа <> ( ) ; // Додели име, године и плате

лица. додати ( Нова Особа ( 'Алице' , 25 , 50000 ) ) ;

лица. додати ( Нова Особа ( 'Боб' , 30 , 75000 ) ) ;

лица. додати ( Нова Особа ( 'Чарли' , двадесет , 40000 ) ) ;

Цомпаратор < Особа > салариЦомпаратор = Нова Цомпаратор < Особа > ( ) {

// Сортирај лица на основу плате

јавности инт упоредити ( Особа п1, Особа п2 ) {

повратак Интегер . упоредити ( п2. гетСалари ( ) , п1. гетСалари ( ) ) ;

}

} ;

Збирке . врста ( лица, зарадаУпоредник ) ; повратак сортирај вредности

// Штампање сортиране листе особа

за ( Особа особа : лица ) {

Систем . оут . принтлн ( особа ) ;

}

}

}

класа Особа { // Дефинишите име, године и плату

приватни Низ име ; // опсег унутар класе
приватни инт старости ;
приватни инт плата ;

јавности Особа ( Низ име, инт године, инт плата ) {
ово . име = име ;
ово . старости = старости ;
ово . плата = плата ;
}
јавности Низ гетНаме ( ) {
повратак име ;
}
јавности инт гетАге ( ) {
повратак старости ;
}
јавности инт гетСалари ( ) {
повратак плата ;
}
јавности Низ тоСтринг ( ) {
повратак име + ' (старост ' + старости + ', плата $' + плата + ')' ;
}
}

Опис кода је дат у наставку:

  • Час под називом „ Особа ” са три поља: „ име ”, “ старости ', и ' плата ' се сматра.
  • Након тога, сортирајте колекцију објеката Персон у зависности од њиһове плате у опадајућем редоследу.

Излаз

Излаз показује да су плате сортиране према опадајућем редоследу.

Закључак

У Јави, интерфејс Цомпаратор је моћан алат који омогућава корисницима да сортирају објекте на основу прилагођениһ критеријума. Он надјачава метод цомпаре(), корисници могу дефинисати сопствену функцију поређења и користити је за сортирање колекција објеката на различите начине. Овај чланак је објаснио интерфејс Цомпаратор заједно са практичним примерима у Јави.