Θα είναι πάντα ίσα δύο αντικείμενα όταν η μέθοδος compareTo () επιστρέφει μηδέν;
Θα είναι πάντα ίσα δύο αντικείμενα όταν η μέθοδος compareTo () επιστρέφει μηδέν;

Βίντεο: Θα είναι πάντα ίσα δύο αντικείμενα όταν η μέθοδος compareTo () επιστρέφει μηδέν;

Βίντεο: Θα είναι πάντα ίσα δύο αντικείμενα όταν η μέθοδος compareTo () επιστρέφει μηδέν;
Βίντεο: Tim Maudlin Λ Palmer: Fractal Geometry, Non-locality, Bell 2024, Απρίλιος
Anonim

Το είναι το συνέστησε σύγκρισηΜε μόνο επιστρέφει 0, εάν καλέσετε ισοδυναμεί επί τα ίδια αντικείμενα θα ΕΠΙΣΤΡΟΦΗ αλήθεια: σύγκρισηΜε (e2) == 0 έχει το ίδιο boolean τιμή ως e1. ισοδυναμεί (e2) για κάθε e1 και e2 της κατηγορίας C. Σημειώστε ότι null είναι δεν αποτελεί παράδειγμα οποιασδήποτε κατηγορίας, και π.

Επιπλέον, είναι δυνατόν τα ίσα () να επιστρέψουν false ακόμα κι αν τα περιεχόμενα δύο αντικειμένων είναι ίδια;

4 Απαντήσεις. Στη java η μέθοδος public boolean ισοδυναμεί ( Αντικείμενο obj) κληρονομείται από το Αντικείμενο . Ωστόσο, η εφαρμογή της μεθόδου όπως ορίζεται στο Αντικείμενο τάξη είναι ότι το ισοδυναμεί μέθοδος θα επιστροφή αν και μόνο αν ο δύο αντικείμενα που συγκρίνονται είναι οι ίδιο παράδειγμα.

Στη συνέχεια, το ερώτημα είναι γιατί η μέθοδος compareTo () πρέπει να είναι συνεπής με τη μέθοδο ίσης () στην Java; Αυτό συμβαίνει επειδή η διεπαφή χάρτη ορίζεται με βάση το ισοδυναμεί λειτουργία, αλλά ένας χάρτης εκτελεί όλες τις βασικές συγκρίσεις χρησιμοποιώντας το σύγκρισηΜε (ή συγκρίνετε) μέθοδος , άρα δύο κλειδιά που θεωρούνται ίσος με αυτό μέθοδος είναι, από τη σκοπιά του ταξινομημένου χάρτη, ίσος.

Έχοντας αυτό υπόψη, ποια είναι η διαφορά μεταξύ της μεθόδου == ίσον () και σύγκριση με ();

σύγκρισηΜε : Συγκρίνει δύο χορδές λεξικογραφικά. ισοδυναμεί : Συγκρίνει αυτή τη συμβολοσειρά με το καθορισμένο αντικείμενο. σύγκρισηΜε συγκρίνει δύο συμβολοσειρές με τους χαρακτήρες τους (στο ίδιο ευρετήριο) και επιστρέφει έναν ακέραιο (θετικό ή αρνητικό) ανάλογα. ίσον () ελέγχει εάν δύο αντικείμενα είναι ίδια ή όχι και επιστρέφει ένα boolean.

Μπορούμε να παρακάμψουμε τη μέθοδο σύγκρισης με;

Παράκαμψη της μεθόδου compareTo Θα πρέπει να επιστρέψει έναν αρνητικό ακέραιο (συνήθως -1), εάν το τρέχον αντικείμενο ενεργοποίησης είναι μικρότερο από το περασμένο ένας , και θετικός ακέραιος (συνήθως +1) αν είναι μεγαλύτερος από, και 0 αν είναι ίσος. μέθοδος σύγκρισης πρέπει να εισάγει μια εξαίρεση εάν το αντικείμενο που πέρασε έχει μη συμβατό τύπο ή μηδενικό.

Συνιστάται: