logo

Порівняний інтерфейс у Java з прикладами

Інтерфейс Comparable використовується для порівняння об’єкта того самого класу з екземпляром цього класу, він забезпечує впорядкування даних для об’єктів класу, визначеного користувачем. Клас повинен реалізувати java.lang.Comparable інтерфейс для порівняння свого екземпляра, він надає метод compareTo, який приймає параметр об’єкта цього класу. У цій статті ми побачимо, як можна відсортувати масив пар різних типів даних за різними параметрами порівняння.

Використання порівняльного інтерфейсу

  • У цьому методі ми збираємося реалізувати Comparable інтерфейс з java.lang Пакет в класі Pair.
  • Інтерфейс Comparable містить метод порівняти визначити порядок елементів.
  • Перевизначити порівняти метод у класі Pair.
  • Створіть масив пар і заповніть масив.
  • Використовувати Масиви.сортування () для сортування масиву.

Приклад 1

Дано масив пар, що складається з двох полів типу string і integer. ви повинні відсортувати масив у зростаючому лексикографічному порядку, і якщо два рядки однакові, відсортуйте їх на основі їх цілого значення.



Зразок введення/виведення:

Input: { {'abc', 3}, {'a', 4}, {'bc', 5}, {'a', 2} } Output: { {'a', 2}, {'a', 4}, {'abc', 3}, {'bc', 5} } Input: { {'efg', 1}, {'gfg', 1}, {'cba', 1}, {'zaa', 1} } Output: { {'cba', 1}, {'efg', 1}, {'gfg', 1}, {'zaa', 1} }>

Java






типи циклу for



import> java.io.*;> import> java.util.*;> class> Pair>implements> Comparable {> >String x;> >int> y;> >public> Pair(String x,>int> y)> >{> >this>.x = x;> >this>.y = y;> >}> >public> String toString()> >{> >return> '('> + x +>','> + y +>')'>;> >}> >@Override> public> int> compareTo(Pair a)> >{> >// if the string are not equal> >if> (>this>.x.compareTo(a.x) !=>0>) {> >return> this>.x.compareTo(a.x);> >}> >else> {> >// we compare int values> >// if the strings are equal> >return> this>.y - a.y;> >}> >}> }> public> class> GFG {> >public> static> void> main(String[] args)> >{> >int> n =>4>;> >Pair arr[] =>new> Pair[n];> >arr[>0>] =>new> Pair(>'abc'>,>3>);> >arr[>1>] =>new> Pair(>'a'>,>4>);> >arr[>2>] =>new> Pair(>'bc'>,>5>);> >arr[>3>] =>new> Pair(>'a'>,>2>);> >// Sorting the array> >Arrays.sort(arr);> >// printing the> >// Pair array> >print(arr);> >}> >public> static> void> print(Pair[] arr)> >{> >for> (>int> i =>0>; i System.out.println(arr[i]); } } }>

>

java упс поняття
>

Вихід:

 Before Sorting: (abc, 3); (a, 4); (bc, 5); (a, 2); After Sorting: (a,2) (a,4) (abc,3) (bc,5)>

Примітка: якщо два рядки однакові, порівняння виконується на основі значення.

Приклад 2

Дано масив пар, що складається з двох рядків з іменами та прізвищами. вам потрібно відсортувати масив у зростаючому лексикографічному порядку імені, а якщо два рядки однакові, відсортувати його за їхнім прізвищем.

Зразок введення/виведення:

Input: { {'raj', 'kashup'}, {'rahul', 'singh'}, {'reshmi', 'dubey'}, {'rahul', 'jetli'} } Output: { {'rahul', 'jetli'}, {'rahul', 'singh'}, {'raj', 'kashup'}, {'reshmi', 'dubey'} } Input: { {'abc', 'last'}, {'pklz', 'yelp'}, {'rpng', 'note'}, {'ppza', 'xyz'} } Output: { {'abc', 'last'}, {'pklz', 'yelp'}, {'ppza', 'xyz'}, {'rpng', 'note'} }>

Java




import> java.io.*;> import> java.util.*;> class> Pair>implements> Comparable {> >String firstName;> >String lastName;> >public> Pair(String x, String y)> >{> >this>.firstName = x;> >this>.lastName = y;> >}> >public> String toString()> >{> >return> '( '> + firstName +>' , '> + lastName +>' )'>;> >}> >@Override> public> int> compareTo(Pair a)> >{> >// if the string are not equal> >if> (>this>.firstName.compareTo(a.firstName) !=>0>) {> >return> this>.firstName.compareTo(a.firstName);> >}> >else> {> >// we compare lastName if firstNames are equal> >return> this>.lastName.compareTo(a.lastName);> >}> >}> }> public> class> GFG {> >public> static> void> main(String[] args)> >{> >int> n =>4>;> >Pair arr[] =>new> Pair[n];> >arr[>0>] =>new> Pair(>'raj'>,>'kashup'>);> >arr[>1>] =>new> Pair(>'rahul'>,>'singh'>);> >arr[>2>] =>new> Pair(>'reshmi'>,>'dubey'>);> >arr[>3>] =>new> Pair(>'rahul'>,>'jetli'>);> >// Sorting the array> >Arrays.sort(arr);> >// printing the> >// Pair array> >print(arr);> >}> >public> static> void> print(Pair[] arr)> >{> >for> (>int> i =>0>; i System.out.println(arr[i]); } } }>

методи java arraylist
>

>

Вихід:

 Before Sorting: ( raj , kashup ) ( rahul , singh ) ( reshmi , dubey ) ( rahul , jetli ) After Sorting: ( rahul , jetli ) ( rahul , singh ) ( raj , kashup ) ( reshmi , dubey )>

У цій статті ми відсортували визначені користувачем пари з різними типами даних за допомогою java порівнянний .