Если бы вы переместили объявление вашего массива в цикл for
, все бы пошло так, как ожидалось.Проблема теперь в том, что все ваши Design
экземпляры имеют одинаковый массив.
for(int i=0; i<5; i++){
double[] dbl = new double[2];
for(int j=0; j<2; j++){
System.out.println(j+i);
dbl[j] = j+i;
}
Design des = new Design(dbl);
map.put(des, Double.valueOf(i));
}
Более того, ваш метод equals
даст неверные результаты, если у вас есть подкласс Design
.Вместо использования instanceof
сравните классы.Так что измените
if (!(obj instanceof Design))
return false;
на
if (!(obj.getClass() == getClass() ) )
return false;
Это, однако, не связано с вашей проблемой