java:jfc_intf_sort

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
java:jfc_intf_sort [2015/03/23 05:28]
gthanos [Συγκρίνοντας με χρήσης ενός Comparator object]
java:jfc_intf_sort [2016/02/26 11:15]
127.0.0.1 external edit
Line 53: Line 53:
  
 <WRAP 85% center round tip> <WRAP 85% center round tip>
-Εξ' ορισμού (εάν δεν την επαναπροσδιορίσετε) η μέθοδος [[https://​docs.oracle.com/​javase/​8/​docs/​api/​java/​lang/​Object.html#​equals-java.lang.Object-|equals]],​ [[http://​docs.oracle.com/​javase/​tutorial/​java/​IandI/​objectclass.html|συγκρίνει δύο αντικείμενα με βάση την διεύθυνση ​στην οποία δίχνει η μεταβλητή ​του κάθε αντικειμένου]]. Στην πραγματικότητα επιστρέφει ισότητα __μόνο αν τα references των δύο αντικειμένων είναι ίδια__, δηλ. και οι δύο μεταβλητές δείχνουν στο ίδιο αντικείμενο. Στην πλειοψηφία των περιπτώσεων ο συγκεκριμένος τρόπος σύκρισης δεν μας δίνει στην πράξη ικανοποιητικό αποτελέσμα,​ καθώς αγνοεί αντικείμενα με τα ίδια περιεχόμενα.+Εξ' ορισμού (εάν δεν την επαναπροσδιορίσετε) η μέθοδος [[https://​docs.oracle.com/​javase/​8/​docs/​api/​java/​lang/​Object.html#​equals-java.lang.Object-|equals]],​ [[http://​docs.oracle.com/​javase/​tutorial/​java/​IandI/​objectclass.html|συγκρίνει δύο αντικείμενα με βάση την διεύθυνση του κάθε αντικειμένου]]. Στην πραγματικότητα επιστρέφει ισότητα __μόνο αν τα references των δύο αντικειμένων είναι ίδια__, δηλ. και οι δύο μεταβλητές δείχνουν στο ίδιο αντικείμενο. Στην πλειοψηφία των περιπτώσεων ο συγκεκριμένος τρόπος σύκρισης δεν μας δίνει στην πράξη ικανοποιητικό αποτελέσμα,​ καθώς αγνοεί αντικείμενα με τα ίδια περιεχόμενα.
  
 Σε αναλογία η μέθοδος [[https://​docs.oracle.com/​javase/​8/​docs/​api/​java/​lang/​Object.html#​hashCode--|hashCode]] επιστρέφει την δεκαεξαδική τιμή που δείχνει η μεταβλητή του αντικειμένου στην μνήμη. Με δεδομένο ότι __για δύο ίδια αντικείμενα τα hashCodes τους θα πρέπει να είναι κοινά__,​ η default υλοποίηση ταιριάζει με την default υλοποίηση της μεθόδου //equals//. Αν όμως αλλάξει η υλοποίηση της //equals// σε μία κλάση θα πρέπει να αλλάξει και η //​hashCode()//​ ώστε δύο ίδια αντικείμενα κατά την μέθοδο //equals// να έχουν και ίδια hashCodes. Σε αναλογία η μέθοδος [[https://​docs.oracle.com/​javase/​8/​docs/​api/​java/​lang/​Object.html#​hashCode--|hashCode]] επιστρέφει την δεκαεξαδική τιμή που δείχνει η μεταβλητή του αντικειμένου στην μνήμη. Με δεδομένο ότι __για δύο ίδια αντικείμενα τα hashCodes τους θα πρέπει να είναι κοινά__,​ η default υλοποίηση ταιριάζει με την default υλοποίηση της μεθόδου //equals//. Αν όμως αλλάξει η υλοποίηση της //equals// σε μία κλάση θα πρέπει να αλλάξει και η //​hashCode()//​ ώστε δύο ίδια αντικείμενα κατά την μέθοδο //equals// να έχουν και ίδια hashCodes.
java/jfc_intf_sort.txt · Last modified: 2017/05/12 12:18 by gthanos