elis88 Δημοσ. 21 Ιανουαρίου 2008 Δημοσ. 21 Ιανουαρίου 2008 Γεια σας, Λοιπόν, θέλω να συγρίνω δύο αντικείμενα ίδιου τύπου. Το αντικείμενο περιέχει Strings, int, Time και Date. Πως να τα συγκρίνω, με ==, με equals ή με κάποιο που θα λειτοθργεί ως key και θα είναι μοναδικό για κάθε αντικέίμενο αυτού του τύπου. Ποιος είανι ο ποιο σωστός τρόπος; Σας ευχαριστώ προκαταβολικά.
Επισκέπτης Δημοσ. 22 Ιανουαρίου 2008 Δημοσ. 22 Ιανουαρίου 2008 Θα πρέπει να συγκρίνεις το κάθε πεδίο ξεχωριστά, δηλαδή το String του ενός αντικειμένου με το String του άλλου, int με int κτλ. Εάν όλα είναι ίδια τότε τα αντικείμενα σου έχουν το ίδιο περιεχόμενο (είναι ίδια) πχ. > public class TestClass { private String text; private int number; public TestClass(String text, int number) { this.text = text; this.number = number; } public String getText() { return text; } public int getNumber() { return number; } public boolean equalsTo(TestClass ob) { if (this.text.equals(ob.getText()) && this.number == ob.getNumber()) { return true; } return false; } } class MainClass { public static void main(String[] args) { TestClass ob1 = new TestClass("an_object",5); TestClass ob2 = new TestClass("another_object",10); TestClass ob3 = new TestClass("an_object",5); if (ob1.equalsTo(ob2)) { System.out.println("ob1 is equal to ob2"); } else { System.out.println("ob1 is _NOT_ equal to ob2"); } if (ob1.equalsTo(ob3)) { System.out.println("ob1 is equal to ob3"); } else { System.out.println("ob1 is _NOT_ equal to ob3"); } } }
Dikemou Δημοσ. 23 Ιανουαρίου 2008 Δημοσ. 23 Ιανουαρίου 2008 Καλύτερα να κάνεις override την equals() του Object, παρά να την ονομάσεις όπως θες και να της δώσεις ό,τι παραμέτρους θες
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.