ArrayList<Integer> a=new ArrayList<Integer>();
ArrayList<Integer> b=new ArrayList<Integer>();
// b=(ArrayList<Integer>) a.clone();
if(a.equals(b))
System.out.println(a.hashCode()+","+b.hashCode());我已经声明了两个地址空间,为什么它们指向的还是同一个地方?
ArrayList<Integer> b=new ArrayList<Integer>();
// b=(ArrayList<Integer>) a.clone();
if(a.equals(b))
System.out.println(a.hashCode()+","+b.hashCode());我已经声明了两个地址空间,为什么它们指向的还是同一个地方?
String b=new String(a);
// if(a==b)
System.out.println(a.hashCode()+","+b.hashCode());
为什么a==b不能够运行(即它们不是指向同一地址的)但是它们的hashcode()却一样?
String b=new String(a); b指向“12345”所有a和b不同
a.hashCode()+","+b.hashCode() hashcode()相同是因为指向相同的对象不知道这样对不对!!!
System.out.println(System.identityHashCode(a) + "," + System.identityHashCode(b));
就可以看到不一样了