Διαφορά μεταξύ συγκρίσιμων και συγκριτών στην Java

Συγγραφέας: Laura McKinney
Ημερομηνία Δημιουργίας: 1 Απρίλιος 2021
Ημερομηνία Ενημέρωσης: 15 Ενδέχεται 2024
Anonim
Διαφορά μεταξύ συγκρίσιμων και συγκριτών στην Java - Τεχνολογία
Διαφορά μεταξύ συγκρίσιμων και συγκριτών στην Java - Τεχνολογία

Περιεχόμενο

Συγκρίσιμα και Συγκριτικά είναι και οι γενικές διεπαφές στη Java που χρησιμοποιούνται για τη σύγκριση των στοιχείων δεδομένων των αντικειμένων. Η συγκρίσιμη διεπαφή υπάρχει στο πακέτο java.lang και η διεπαφή Comparator υπάρχει στη συσκευασία java.util. Η βασική διαφορά μεταξύ των συγκρίσιμων και των συγκριτικών διεπαφών είναι ότι η Συγκριτική διεπαφή παρέχει την μοναδική αλληλουχία ταξινόμησης ενώ η διεπαφή Comparator παρέχει τις πολλαπλές ακολουθίες διαλογής. Υπάρχουν κάποιες άλλες διαφορές μεταξύ της διεπαφής συγκρίσιμων και των συγκριτών που θα μελετήσουμε στο διάγραμμα σύγκρισης.


  1. Συγκριτικό διάγραμμα
  2. Ορισμός
  3. Βασικές διαφορές
  4. συμπέρασμα

Συγκριτικό διάγραμμα

Βάση σύγκρισηςΣυγκρίσιμοςΣυγκριτικός
Βασικός Η Συγκριτική διεπαφή επιτρέπει μόνο μία ακολουθία ταξινόμησης.Η διεπαφή Comparator επιτρέπει πολλαπλές ακολουθίες ταξινόμησης.
Πακέτα Η συγκρίσιμη διεπαφή υπάρχει στη συσκευασία java.lang.Η διεπαφή Comparator υπάρχει στη συσκευασία java.util.
Μέθοδοι Η συγκριτική διεπαφή περιέχει μόνο μία μέθοδο
δημόσιο int compareTo (Object obj);
Η διεπαφή Comparator περιέχει δύο μεθόδους
δημόσια σύγκριση int (Object obj1, Object obj2)
boolean ισούται (Object obj)
ΕκτέλεσηΣυγκριτική διεπαφή υλοποιείται από την κλάση των αντικειμένων που πρόκειται να συγκριθούν.Η διεπαφή σύγκρισης εφαρμόζεται από μια τάξη sperate αντί για την κλάση της οποίας τα αντικείμενα πρέπει να συγκριθούν.
Σύγκριση Η μέθοδος compareTo (Object obj) συγκρίνει το αντικείμενο που χρησιμοποιείται για την κλήση της μεθόδου με το συγκεκριμένο αντικείμενο που περνά στη μέθοδο.Η μέθοδος σύγκρισης (Object obj1, Object obj2) συγκρίνει και τα δύο καθορισμένα αντικείμενα που διαβιβάζονται στη μέθοδο.
Λίστα / ArrayΌταν μια λίστα του αντικειμένου συγκρίσιμου τύπου πρέπει να συγκριθεί, η κλάση Συλλογή παρέχει μια μέθοδο, δηλαδή Collections.sort (List lst).Όταν μια λίστα αντικειμένων συγκρίσιμου τύπου πρέπει να συγκριθεί, η συλλογή παρέχει μια μέθοδο δηλ.
Collections.sort (Λίστα, Σύγκριση).


Ορισμός συγκρίσιμων

Συγκρίσιμη είναι μια διεπαφή που είναι διαθέσιμη στο πακέτο java.lang. Μια κλάση εφαρμόζει τη διεπαφή Comparator, για να ταξινομήσει το αντικείμενο της σε φυσική σειρά. Τα αντικείμενα ταξινομούνται σε φυσική σειρά σημαίνει ότι τα αντικείμενα συγκρίνονται με τις τιμές ASCII τους. Οι κλάσεις που εφαρμόζουν τη συγκριτική διεπαφή είναι κλάσεις Byte, Character, Double, Float, Long, Short, String και Integer. Ακόμη και η κλάση Date and Calander εφαρμόζει επίσης τη συγκριτική διεπαφή.

Η συγκριτική διεπαφή περιέχει μόνο μία μέθοδο που είναι το CompareTo (Object obj). Αυτή η μέθοδος συγκρίνει το αντικείμενο που χρησιμοποιείται για την επίκληση της μεθόδου με το αντικείμενο που καθορίζεται στην παράμετρο. Η σύνταξη της μεθόδου είναι ως εξής:

δημόσιο int compareTo (Object obj);

Η μέθοδος CompareTo (Object obj) επιστρέφει 0, όταν και το αντικείμενο που συγκρίνεται με τη μέθοδο περιέχει την ίδια τιμή, επιστρέφει εάν το αντικείμενο που επικαλείται είναι μικρότερο από το καθορισμένο αντικείμενο και επιστρέφει + ve εάν το αντικείμενο που επικαλείται έχει μεγαλύτερη αξία σε σύγκριση με το συγκεκριμένο αντικείμενο. Η κλάση Συλλογές παρέχει μια μέθοδο ταξινόμησης των στοιχείων της λίστας. Τα στοιχεία λίστας (και πίνακα) συγκρίσιμου τύπου μπορούν να ταξινομηθούν χρησιμοποιώντας τη μέθοδο "Collections.sort (List lst)".


Ορισμός του συγκριτή

Ο Comparator είναι μια διασύνδεση που είναι διαθέσιμη στο πακέτο java.util. Ο διαχωριστής διεπαφής δεν εφαρμόζεται στην κλάση των οποίων τα αντικείμενα πρόκειται να συγκριθούν, αντί ξεχωριστής κλάσης υλοποιεί τη διεπαφή Comparator έτσι ώστε η λογική ταξινόμησης να εφαρμόζεται σε κάθε στοιχείο δεδομένων του αντικειμένου σε διαφορετική κλάση. Ο συγκριτής περιέχει δύο μεθόδους ως εξής:

δημόσια σύγκριση int (Object obj1, Object obj2) και boolean ισούται (Object obj)

Η μέθοδος σύγκρισης () παραπάνω συγκρίνει το πρώτο αντικείμενο obj1, με το δεύτερο αντικείμενο obj2. Η μέθοδος σύγκρισης () επιστρέφει 0 όταν και το αντικείμενο που συγκρίνεται με τη μέθοδο περιέχει την ίδια τιμή, επιστρέφει αν το αντικείμενο obj1 είναι μικρότερο από το αντικείμενο obj2 και επιστρέφει + ve εάν το αντικείμενο obj1 έχει μεγαλύτερη τιμή σε σύγκριση με το αντικείμενο obj2. Οι μέθοδοι equals () ελέγχουν αν το συγκεκριμένο αντικείμενο είναι ίσο με το αντικείμενο που επικαλείται. Η μέθοδος equals () επιστρέφει αληθής αν και τα δύο συγκρινόμενα αντικείμενα είναι ίσα αλλιώς επιστρέφει ψευδής. Η κλάση Συλλογές παρέχει τη μέθοδο ταξινόμησης των στοιχείων του καταλόγου και του τύπου του συγκριτή. Τα στοιχεία λίστας των τύπων σύγκρισης ταξινομούνται με τη μέθοδο Collections.sort (List, Comparator).

  1. Η συγκρίσιμη διεπαφή επιτρέπει μια ενιαία ακολουθία ταξινόμησης που σημαίνει ότι μπορείτε να συγκρίνετε μόνο ένα στοιχείο δεδομένων του αντικειμένου στη μέθοδο compareTo () από την άλλη πλευρά Η διεπαφή Comparator επιτρέπει πολλαπλές ακολουθίες ταξινόμησης που σημαίνουν ότι μπορείτε να συγκρίνετε πολλαπλά στοιχεία δεδομένων του αντικειμένου.
  2. Η Συγκριτική διεπαφή υλοποιείται από την κλάση των οποίων τα αντικείμενα συγκρίνονται επειδή η λογική ταξινόμησης ορίζεται μέσα στην ίδια κλάση. Από την άλλη πλευρά, η διεπαφή Comparator δεν εφαρμόζεται από την κλάση των οποίων τα αντικείμενα πρέπει να συγκριθούν επειδή η λογική ταξινόμησης ορίζεται στις ξεχωριστές τάξεις όπου κάθε τάξη ορίζει την ταξινόμηση σε ένα στοιχείο δεδομένων του αντικειμένου και αυτές οι καθοριστικές κλάσεις υλοποιούν τη διεπαφή Comparator .
  3. Η συγκριτική διεπαφή βρίσκεται μέσα στο πακέτο java.lang, ενώ η διεπαφή Comparator βρίσκεται μέσα στο πακέτο java.util.
  4. Η Συγκριτική διεπαφή δηλώνει μόνο μία μέθοδο που συγκρίνεται με το Object obj ενώ η διεπαφή Comparator δηλώνει δύο μεθόδους που συγκρίνονται (Object obj1, Object obj2) και ισούνται (Object obj).
  5. Η μέθοδος σύγκρισηςTo (Object obj) στη συγκριτική μέθοδο συγκρίνει το αντικείμενο με το συγκεκριμένο αντικείμενο που έχει περάσει στη μέθοδο, ενώ η μέθοδος σύγκρισης (Object obj1, Object obj2) του Comparator συγκρίνει τα αντικείμενα obj1 με obj2 που διαβιβάζονται στη μέθοδο.
  6. Η κλάση Συλλογές παρέχει μια μέθοδο ταξινόμησης "Collections.sort (List lst)" για να ταξινομήσετε τα αντικείμενα του συγκρίσιμου τύπου. Η κλάση Συλλογές παρέχει τη μέθοδο ταξινόμησης Collections.sort (List, Comparator) για να ταξινομήσετε τα αντικείμενα του τύπου Comparator.

Συμπέρασμα:

Εάν θέλετε να ταξινομήσετε τα αντικείμενα στη φυσική παραγγελία, τότε μπορείτε να χρησιμοποιήσετε την αντίστοιχη διεπαφή που θέλετε να ταξινομήσετε τα αντικείμενα βάσει οποιουδήποτε χαρακτηριστικού, στη συνέχεια χρησιμοποιείται η διεπαφή Comparator.