0

I ran a test, but I had no idea why these two objects (date1[0] and date2) have different hashCode after I assign setDate for date2 object. Does anyone know why the value is different? Does it mean that after assign setDate(), both objects refer to a new address?

import java.util.Date;

public class Main{

    public static void main(String args[]){

        Date[] date1 = { new Date(2001, 01, 15, 11, 34 ),
                new Date(2003, 02, 14, 10, 33 )};
        System.out.println(date1.hashCode());

        Date date2 = date1[0]; // both objects have similar hashCode
        System.out.println(date1[0].hashCode());
        System.out.println(date2.hashCode());

        date2.setDate(13); // after this, both date1[0] and date2 still have      
        //similar hashCode but the value is different from previous ones 
        System.out.println(date1[0].hashCode());
        System.out.println(date2.hashCode());
    }
}
Sotirios Delimanolis
  • 274,122
  • 60
  • 696
  • 724
edgards
  • 99
  • 8

0 Answers0