# equals() in java.util and equals() in Object

Anonymous

Ranch Hand

Posts: 18944

posted 16 years ago

1. What is the difference in equals() in java.util and equals() in Object class?

2. Why equals() in java.util overrides equals() in Object ?.

3. Code:

Box b1 = new Box();

Box b2 = new Box();

b1.l = 5 ; b2.l = 5 ; // l is public instance var in box class

b1.equals(b2) is false // Because 2 different objects hence 2 different references stored in b1 and b2. (Please correct me if iam wrong)

But..

Integer i1 = new Integer(5);

Integer i2 = new Integer(5);

i1.equals(i2) returns true!. Why? If I apply same logic as above, why i1.equals(i2) returns true? OR is implementation of equals method for wrapper class different?

2. Why equals() in java.util overrides equals() in Object ?.

3. Code:

Box b1 = new Box();

Box b2 = new Box();

b1.l = 5 ; b2.l = 5 ; // l is public instance var in box class

b1.equals(b2) is false // Because 2 different objects hence 2 different references stored in b1 and b2. (Please correct me if iam wrong)

But..

Integer i1 = new Integer(5);

Integer i2 = new Integer(5);

i1.equals(i2) returns true!. Why? If I apply same logic as above, why i1.equals(i2) returns true? OR is implementation of equals method for wrapper class different?

emma dawdry

Greenhorn

Posts: 3

posted 16 years ago

The Integer class has its own equals method that overrides objects equals method. The method compares this object to the specified object. The result is true if and only if the argument is not null and is an Integer object that contains the same int value as this object. So it does actually check the value. If you change i2 to 6, false is returned.