consider below code
import java.util.HashSet;
class Demonstration {
@SuppressWarnings("unchecked")
public static void main( String args[] ) {
HashSet<Celebrity> set = new HashSet();
Celebrity realKardashian = new Celebrity(66, 17);
Celebrity kardashianClone = new Celebrity(66, 17);
set.add(realKardashian);
if (set.contains(kardashianClone)) {
System.out.println("Kim is a celebrity");
} else {
System.out.println("Can't find Kim");
}
//System.out.println(realKardashian.equals(kardashianClone));
Integer i1 = new Integer(2);
Integer i2 = new Integer(2);
System.out.println(realKardashian.name == kardashianClone.name);
System.out.println(i1 == i2);
System.out.println(i1.hashCode() +" "+ i2.hashCode());
}
}
class Celebrity {
Integer name;
int age;
public Celebrity(Integer name, int age) {
this.name = name;
this.age = age;
}
}
i1 == i2 prints false but realKardashian.name == kardashianClone.name prints true . why is so ? could you please help understand
Thanks
Type your question above this line.
Course: https://www.educative.io/collection/5307417243942912/5730192894984192
Lesson: https://www.educative.io/collection/page/5307417243942912/5730192894984192/5703274724327424