Προς το περιεχόμενο

Sigrisi me Java


elis88

Προτεινόμενες αναρτήσεις

Δημοσ.

Γεια σας,

 

Λοιπόν, θέλω να συγρίνω δύο αντικείμενα ίδιου τύπου. Το αντικείμενο περιέχει Strings, int, Time και Date. Πως να τα συγκρίνω, με ==, με equals ή με κάποιο που θα λειτοθργεί ως key και θα είναι μοναδικό για κάθε αντικέίμενο αυτού του τύπου. Ποιος είανι ο ποιο σωστός τρόπος;

 

Σας ευχαριστώ προκαταβολικά.

Δημοσ.

Θα πρέπει να συγκρίνεις το κάθε πεδίο ξεχωριστά, δηλαδή το 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");
       }
   }
   
}

Δημοσ.

Καλύτερα να κάνεις override την equals() του Object, παρά να την ονομάσεις όπως θες και να της δώσεις ό,τι παραμέτρους θες ;)

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...