logo

Vergleichbare Schnittstelle in Java mit Beispielen

Die Comparable-Schnittstelle wird verwendet, um ein Objekt derselben Klasse mit einer Instanz dieser Klasse zu vergleichen. Sie stellt die Reihenfolge der Daten für Objekte der benutzerdefinierten Klasse bereit. Die Klasse muss das implementieren java.lang.Comparable Schnittstelle zum Vergleichen ihrer Instanz bereitstellt, stellt sie die Methode „compareTo“ bereit, die einen Parameter des Objekts dieser Klasse entgegennimmt. In diesem Artikel werden wir sehen, wie wir ein Array von Paaren unterschiedlicher Datentypen nach den verschiedenen Vergleichsparametern sortieren können.

Verwendung einer vergleichbaren Schnittstelle

  • In dieser Methode implementieren wir die Comparable-Schnittstelle von java.lang Paket in der Pair-Klasse.
  • Die Comparable-Schnittstelle enthält die Methode vergleichen mit um die Reihenfolge der Elemente zu bestimmen.
  • Überschreiben Sie die vergleichen mit Methode in der Pair-Klasse.
  • Erstellen Sie ein Array von Paaren und füllen Sie das Array.
  • Benutzen Sie die Arrays.sort ()-Funktion zum Sortieren des Arrays.

Beispiel 1

Gegeben sei ein Array von Paaren, das aus zwei Feldern vom Typ String und Integer besteht. Sie müssen das Array in aufsteigender lexikografischer Reihenfolge sortieren und, wenn zwei Zeichenfolgen gleich sind, nach ihrem ganzzahligen Wert sortieren.



Beispiel-E/A:

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




CSS zentriert ein Bild





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

Arraylist-Sortierung
>

>

Ausgabe:

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

Notiz: Wenn zwei Zeichenfolgen gleich sind, erfolgt der Vergleich basierend auf dem Wert.

Beispiel 2

Gegeben sei ein Array von Paaren, das aus zwei Zeichenfolgen mit Vor- und Nachnamen besteht. Sie müssen das Array in aufsteigender lexikografischer Reihenfolge nach dem Vornamen sortieren und, wenn zwei Zeichenfolgen gleich sind, nach ihrem Nachnamen sortieren.

Beispiel-E/A:

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




Postorder-Traversierung des Binärbaums

Sortieren Sie eine Arrayliste in 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]); } } }>

>

>

Ausgabe:

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

In diesem Artikel haben wir benutzerdefinierte Paare mit unterschiedlichen Datentypen mithilfe von Java sortiert vergleichbar .