Comparable-grensesnittet brukes til å sammenligne et objekt av samme klasse med en forekomst av den klassen, det gir rekkefølge av data for objekter av den brukerdefinerte klassen. Klassen må implementere java.lang.Sammenlignbar grensesnitt for å sammenligne forekomsten, gir den compareTo-metoden som tar en parameter for objektet til den klassen. I denne artikkelen vil vi se hvordan vi kan sortere en rekke par med forskjellige datatyper på de forskjellige sammenligningsparametrene.
Bruker sammenlignbart grensesnitt
- I denne metoden skal vi implementere Comparable-grensesnittet fra java.lang Pakke i parklassen.
- Det sammenlignbare grensesnittet inneholder metoden sammenligne med å bestemme rekkefølgen på elementene.
- Overstyr sammenligne med metode i Par-klassen.
- Lag en matrise med par og fyll ut matrisen.
- Bruke Arrays.sort () funksjon for å sortere matrisen.
Eksempel 1
Gitt en rekke par bestående av to felt av typen streng og heltall. du må sortere matrisen i stigende leksikografisk rekkefølge, og hvis to strenger er like sorterer den basert på deres heltallsverdi.
Eksempel I/O:
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
python-programmer
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]); } } }> |
>
avl trerotasjon
>
Produksjon:
Before Sorting: (abc, 3); (a, 4); (bc, 5); (a, 2); After Sorting: (a,2) (a,4) (abc,3) (bc,5)>
Merk: hvis to strenger er like, gjøres sammenligningen basert på verdien.
Eksempel 2
Gitt en rekke par bestående av to strenger med for- og etternavn. du må sortere matrisen i stigende leksikografisk rekkefølge av fornavnet, og hvis to strenger er like sorteres det basert på etternavnet.
Eksempel på I/O:
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
java-tilkobling
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]); } } }> |
>
>
Produksjon:
Before Sorting: ( raj , kashup ) ( rahul , singh ) ( reshmi , dubey ) ( rahul , jetli ) After Sorting: ( rahul , jetli ) ( rahul , singh ) ( raj , kashup ) ( reshmi , dubey )>
I denne artikkelen sorterte vi brukerdefinerte par med forskjellige datatyper ved å bruke java sammenlignbare .