Привет всем,
class Demo{
private int a;
Demo(int a){
this.a = a;
}
}
public class Test{
public static void main(String[] args){
Demo d1 = new Demo(10);
Demo d2 = new Demo(20);
Set<Demo> set = new HashSet<Demo>();
set.add(d1);
set.add(d2);
System.out.println(set);
}
}
Вывод : [javaSE_8. Demo@15db9742, javaSE_8. Demo@6d06d69c]
Я понимаю что приведенный выше код печатает ссылку на объект.
public class Test{
public static void main(String[] args){
Integer i1 = 10;
Integer i2 = 20;
Set<Integer> set = new HashSet<Integer>();
set.add(i1);
set.add(i2);
System.out.println(set);
}
}
Вывод : [20, 10]
Где, поскольку этот код печатает само значение, несмотря на Целое число - это класс (класс Wrapper) и i1, i2 - его объекты.
Я хочу знать, почему это происходит или почему существует эта разница.
Спасибо, Сутан