logo

Sammenlignelig grænseflade i Java med eksempler

Den sammenlignelige grænseflade bruges til at sammenligne et objekt af samme klasse med en forekomst af den klasse, det giver rækkefølge af data for objekter af den brugerdefinerede klasse. Klassen skal implementere java.lang.Sammenlignelig interface til at sammenligne dens forekomst, giver den compareTo-metoden, der tager en parameter for objektet i den pågældende klasse. I denne artikel vil vi se, hvordan vi kan sortere en række par af forskellige datatyper på de forskellige sammenligningsparametre.

Brug af sammenlignelig grænseflade

  • I denne metode skal vi implementere den sammenlignelige grænseflade fra java.lang Pakke i parklassen.
  • Den sammenlignelige grænseflade indeholder metoden sammenligne med at bestemme rækkefølgen af ​​elementerne.
  • Tilsidesæt sammenligne med metode i klassen Par.
  • Opret et array af par og udfyld arrayet.
  • Brug Arrays.sort () funktion til at sortere arrayet.

Eksempel 1

Givet en matrix af par bestående af to felter af typen streng og heltal. du skal sortere arrayet i stigende leksikografisk rækkefølge, og hvis to strenge er ens, sorteres det baseret på deres heltalsværdi.

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 trærotation
>

Produktion:

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

Bemærk: hvis to strenge er ens, så udføres sammenligningen baseret på værdien.

Eksempel 2

Givet en række par bestående af to strenge med for- og efternavne. du skal sortere arrayet i stigende leksikografisk rækkefølge af fornavnet, og hvis to strenge er ens, sorteres det baseret på deres efternavn.

Eksempel 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-forbindelse
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]); } } }>

>

>

Produktion:

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

I denne artikel sorterede vi brugerdefinerede par med forskellige datatyper ved at bruge java sammenlignelig .