62,615
社区成员
发帖
与我相关
我的任务
分享
int[] oldArr = { 1, 2, 3 };
int[] newArr = new int[oldArr.length + 2];
System.out.println(oldArr.hashCode());
System.arraycopy(oldArr, 0, newArr, 1, oldArr.length);
oldArr = newArr;
System.out.println(oldArr.hashCode());
哈希值改变了,是不是可以说明地址变了,也就是不是原来的那个oldArr了。
打印结果:
1175962212
918221580[/quote]
对,java的默认的hashCode实现是基于地址的 int[] oldArr = { 1, 2, 3 };
int[] newArr = new int[oldArr.length + 2];
System.out.println(oldArr.hashCode());
System.arraycopy(oldArr, 0, newArr, 1, oldArr.length);
oldArr = newArr;
System.out.println(oldArr.hashCode());
哈希值改变了,是不是可以说明地址变了,也就是不是原来的那个oldArr了。
打印结果:
1175962212
918221580 int[] oldArr = { 1, 2, 3 };
int[] newArr = new int[oldArr.length + 2];
System.arraycopy(oldArr, 0, newArr, 1, oldArr.length);
oldArr = newArr;
java的ArrayList就是这个原理