Det jämförbara gränssnittet används för att jämföra ett objekt av samma klass med en instans av den klassen, det ger ordning av data för objekt av den användardefinierade klassen. Klassen måste implementera java.lang.Comparable gränssnitt för att jämföra dess instans, tillhandahåller den compareTo-metoden som tar en parameter för objektet i den klassen. I den här artikeln kommer vi att se hur vi kan sortera en rad par av olika datatyper på de olika jämförelseparametrarna.
Använder jämförbart gränssnitt
- I den här metoden kommer vi att implementera det jämförbara gränssnittet från java.lang Paket i parklassen.
- Det jämförbara gränssnittet innehåller metoden jämföra med att bestämma ordningen på elementen.
- Åsidosätt jämföra med metod i klassen Par.
- Skapa en array med par och fyll i arrayen.
- Använd Arrays.sort () funktion för att sortera arrayen.
Exempel 1
Givet en array av par som består av två fält av typen sträng och heltal. du måste sortera arrayen i stigande lexikografisk ordning och om två strängar är lika sortera den baserat på deras heltalsvärde.
Exempel 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
skådespelerskan zeenat aman
sortera java arraylist
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]); } } }> |
>
python-konstruktör
>
Produktion:
Before Sorting: (abc, 3); (a, 4); (bc, 5); (a, 2); After Sorting: (a,2) (a,4) (abc,3) (bc,5)>
Notera: om två strängar är likadana görs jämförelsen baserat på värdet.
Exempel 2
Givet en uppsättning av par som består av två strängar med för- och efternamn. du måste sortera arrayen i stigande lexikografisk ordning av förnamnet och om två strängar är lika sortera det baserat på deras efternamn.
partiellt derivat av latex
Exempel 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
sanjay dutt och
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 den här artikeln sorterade vi användardefinierade par med olika datatyper med hjälp av java jämförbar .