gpt4 book ai didi

java - 为什么ArrayList在插入数据后会改变它的hashcode?

转载 作者:行者123 更新时间:2023-12-01 18:08:52 25 4
gpt4 key购买 nike

嗯,在我看来,对象的 hashCode() 可能与 C++ 中的对象地址相同,因此我希望插入数据之前和之后对象的 hashCode 保持不变。

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

/**
* Created by charlie on 2015/12/11.
*/
public class Hello {
public static void main(String[] args) {
List<Integer> a = new ArrayList<>(1024);
a.add(0, 1);
System.out.println(a.hashCode());
a.add(1, 2);
System.out.println(a.hashCode());
}
}

但它似乎输出了不同的值,那么这意味着插入一个值后,新的列表对象是原始列表对象的深拷贝值?

最佳答案

hashCode 不是对象的地址,而是对象内容的计算哈希值。引用javadoc了解更多信息

如果您想比较并检查它是否是同一个对象,则可以使用 == 运算符来检查引用。

关于java - 为什么ArrayList在插入数据后会改变它的hashcode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34389593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com