logo

Vertailukelpoinen Java-käyttöliittymä esimerkkien kanssa

Vertailevaa käyttöliittymää käytetään vertaamaan saman luokan objektia kyseisen luokan esiintymään, se tarjoaa tietojen järjestyksen käyttäjän määrittämän luokan kohteille. Luokan on toteutettava java.lang.Comparable rajapinta vertailla esiintymistään, se tarjoaa vertailuTo-menetelmän, joka ottaa kyseisen luokan objektin parametrin. Tässä artikkelissa näemme, kuinka voimme lajitella joukon eri tietotyyppien pareja eri vertailuparametreilla.

Vertailevan käyttöliittymän käyttäminen

  • Tässä menetelmässä aiomme toteuttaa vertailukelpoisen käyttöliittymän java.lang Paketti Pari-luokassa.
  • Vertaileva käyttöliittymä sisältää menetelmän vertaa päättää elementtien järjestyksen.
  • Ohita vertaa menetelmä Pair-luokassa.
  • Luo joukko pareja ja täytä taulukko.
  • Käytä Arrays.sort () -funktio taulukon lajittelemiseksi.

Esimerkki 1

Annettu Pairs-joukko, joka koostuu kahdesta merkkijono- ja kokonaislukukentästä. sinun on lajiteltava taulukko nousevaan leksikografiseen järjestykseen ja jos kaksi merkkijonoa ovat samat, lajittele se niiden kokonaislukuarvon perusteella.



Näyte 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








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

kuinka palauttaa taulukko javassa

>

>

Lähtö:

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

Huomautus: jos kaksi merkkijonoa ovat samat, vertailu tehdään arvon perusteella.

Esimerkki 2

Annettu joukko pareja, jotka koostuvat kahdesta merkkijonosta etu- ja sukunimillä. sinun on järjestettävä taulukko etunimen nousevaan leksikografiseen järjestykseen ja jos kaksi merkkijonoa ovat samat, lajittele se sukunimensä perusteella.

Näyte 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




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

>

>

Lähtö:

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

Tässä artikkelissa lajittelimme käyttäjän määrittämät parit eri tietotyypeillä Javaa käyttämällä vertailukelpoinen .