Categories: Allgemein

Unterschied zwischen Vergleichbar und Vergleicher

Comparable und Comparator sind beide Schnittstellen und können zum Sortieren von Sammlungselementen verwendet werden.

Es gibt jedoch viele Unterschiede zwischen Comparable- und Comparator-Schnittstellen, die unten angegeben sind.

VergleichbarKomparator
1) Vergleichbar bietet eine einzelne Sortierreihenfolge . Mit anderen Worten, wir können die Sammlung auf der Grundlage eines einzelnen Elements wie ID, Name und Preis sortieren.Der Comparator bietet mehrere Sortierfolgen . Mit anderen Worten, wir können die Sammlung auf der Grundlage mehrerer Elemente wie ID, Name und Preis usw. sortieren.
2) Vergleichbar wirkt sich auf die ursprüngliche Klasse aus, dh die aktuelle Klasse wird modifiziert.Comparator wirkt sich nicht auf die ursprüngliche Klasse aus, dh die tatsächliche Klasse wird nicht geändert.
3) Comparable bietet die Methode CompareTo() zum Sortieren von Elementen.Comparator bietet die Methode Compare() zum Sortieren von Elementen.
4) Vergleichbar ist im java.lang -Paket vorhanden.Ein Comparator ist im Paket java.util vorhanden .
5) Wir können die Listenelemente des Typs Comparable nach der Methode Collections.sort(List) sortieren.Wir können die Listenelemente vom Typ Comparator nach der Methode Collections.sort(List, Comparator) sortieren.

Vergleichbares Java-Beispiel

Sehen wir uns das Beispiel einer vergleichbaren Schnittstelle an, die die Listenelemente nach Alter sortiert.

Datei: TestSort3.java

  1. //Java Programm zur Demonstration der Verwendung von Java Comparable.  
  2. //Erstellen einer Klasse, die Comparable Interface implementiert  
  3.  java.util.*   importieren ;
  4.  java.io.*   importieren ;
  5. Klasse  Student  implementiert  Comparable<Student>{  
  6. int  rollnr;  
  7. Zeichenfolgenname;  
  8. int  -Alter;  
  9. Student( int  rollno,String name, int  age){  
  10. diese .rollno=rollno;  
  11. dieser .name=name;  
  12. dieses .age=alter;  
  13. }  
  14. public int  CompareTo(Student st){   
  15. if (alter==st.alter)  
  16. zurückgeben ;   
  17. sonst wenn (Alter>St.Alter)   
  18. Rückgabe 1 ;   
  19. anders  
  20. Rückkehr  – 1 ;  
  21. }  
  22. }  
  23. //Erstellen einer Testklasse zum Sortieren der Elemente  
  24. öffentliche Klasse  TestSort3{   
  25. public static void  main(String args[]){    
  26. ArrayList<Student> al= new  ArrayList<Student>();  
  27. al.add( new  Student( 101 , “Vijay” , 23 ));  
  28. al.add( new  Student( 106 , “Ajay” , 27 ));  
  29. al.add( new  Student( 105 , “Jai” , 21 ));  
  30.   
  31. Collections.sort(al);  
  32. für (Schüler st:al){  
  33. System.out.println(st.rollno+ ” ” +st.name+ ” ” +st.age);  
  34. }  
  35. }  
  36. }  

Ausgabe:

105 Jai 21
101 Vijay 23
106 Ajai 27

Java-Komparator-Beispiel

Sehen wir uns ein Beispiel der Java Comparator-Schnittstelle an, in der wir die Elemente einer Liste mit verschiedenen Komparatoren sortieren.Student.java

  1. Klasse  Student{  
  2. int  rollnr;  
  3. Zeichenfolgenname;  
  4. int  -Alter;  
  5. Student( int  rollno,String name, int  age){  
  6. diese .rollno=rollno;  
  7. dieser .name=name;  
  8. dieses .age=alter;  
  9. }  
  10. }  

AgeComparator.java

  1.  java.util.*   importieren ;
  2. Klasse  AgeComparator  implementiert  Comparator<Student>{  
  3. öffentlicher int-  Vergleich (Schüler s1, Schüler s2) {   
  4. wenn (s1.alter==s2.alter)  
  5. zurückgeben ;   
  6. sonst wenn (s1.age>s2.age)   
  7. Rückgabe 1 ;   
  8. anders  
  9. Rückkehr  – 1 ;  
  10. }  
  11. }  

NameComparator.java

Diese Klasse stellt eine auf dem Namen basierende Vergleichslogik bereit. In diesem Fall verwenden wir die Methode CompareTo() der Klasse String, die intern die Vergleichslogik bereitstellt.

  1.  java.util.*   importieren ;
  2. Klasse  NameComparator  implementiert  Comparator<Student>{  
  3. öffentlicher int-  Vergleich (Schüler s1, Schüler s2) {   
  4. return  s1.name.compareTo(s2.name);  
  5. }  
  6. }  

TestComparator.java

In dieser Klasse drucken wir die Werte des Objekts, indem wir sie nach Name und Alter sortieren.

  1. //Java Programm zur Demonstration der Verwendung von Java Comparator  
  2.  java.util.*   importieren ;
  3.  java.io.*   importieren ;
  4. Klasse  TestComparator{  
  5. public static void  main(String args[]){    
  6. // Erstellen einer Schülerliste  
  7. ArrayList<Student> al= new  ArrayList<Student>();  
  8. al.add( new  Student( 101 , “Vijay” , 23 ));  
  9. al.add( new  Student( 106 , “Ajay” , 27 ));  
  10. al.add( new  Student( 105 , “Jai” , 21 ));  
  11.   
  12. System.out.println( “Sortierung nach Namen” );  
  13. //Benutze NameComparator um die Elemente zu sortieren  
  14. Collections.sort (al, neuer  NameComparator ());  
  15. //Die Elemente der Liste durchlaufen  
  16. für (Student st: al){  
  17. System.out.println(st.rollno+ ” ” +st.name+ ” ” +st.age);  
  18. }  
  19.   
  20. System.out.println( “Sortierung nach Alter” );  
  21. // Verwenden von AgeComparator zum Sortieren der Elemente  
  22. Collections.sort(al, new  AgeComparator());  
  23. // Erneutes Durchlaufen der Liste  
  24. für (Student st: al){  
  25. System.out.println(st.rollno+ ” ” +st.name+ ” ” +st.age);  
  26. }  
  27.   
  28. }  
  29. }  

Ausgabe:

Nach Namen sortieren
106 Ajai 27
105 Jai 21
101 Vijay 23

Sortierung nach Alter       
105 Jai 21
101 Vijay 23
106 Ajai 27
osky

Recent Posts

Freeway vs. Highway: Ein detaillierter Blick auf die Feinen Unterschiede im Straßenverkehr

Einleitung: Die Begriffe "Freeway" und "Highway" werden oft synonym verwendet, aber es gibt subtile Unterschiede…

6 Monaten ago

Burrito vs. Enchilada: Die Feinen Unterschiede Zwischen Zwei Klassikern der Mexikanischen Küche

Burritos und Enchiladas sind zwei beliebte Gerichte der mexikanischen Küche, die oft miteinander verwechselt werden.…

6 Monaten ago

Ein umfassender Vergleich zwischen Replikation und Transkription

In der Zellbiologie spielen Replikation und Transkription entscheidende Rollen im genetischen Prozess. Beide sind Mechanismen,…

6 Monaten ago

Verständnis des Unterschieds zwischen Osmose und Diffusion

Osmose und Diffusion sind zwei grundlegende Prozesse, die in der Zellbiologie und Chemie eine entscheidende…

6 Monaten ago

Der entscheidende Unterschied zwischen 4G und 5G

Einleitung: Die Evolution der mobilen Kommunikationstechnologie hat einen bedeutenden Meilenstein erreicht, als 4G (LTE) zu…

6 Monaten ago

Der entscheidende Unterschied zwischen JPG und PNG

Einleitung: JPG und PNG sind zwei gängige Bildformate, die im Internet weit verbreitet sind. Obwohl…

6 Monaten ago