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());
}
}