java – 使用System.identityHashCode(obj) – 何时?为什么?
发布时间:2020-12-14 05:02:33 所属栏目:Java 来源:网络整理
导读:什么时候做一个合适的时间来做第4行而不是第3行?还是他们完全重复调用? 1 Object o1 = new Object();2 3 int hcObj = o1.hashCode();4 int hcSys = System.identityHashCode(o1); 解决方法 有时您可能想要创建一组可区分的对象.其中一些对象可能彼此相等,
什么时候做一个合适的时间来做第4行而不是第3行?还是他们完全重复调用?
1 Object o1 = new Object(); 2 3 int hcObj = o1.hashCode(); 4 int hcSys = System.identityHashCode(o1); 解决方法
有时您可能想要创建一组可区分的对象.其中一些对象可能彼此相等,但您仍然希望引用所有这些对象,只能抛出真正重复的引用.你可能会这样做,因为equals实现不是你感兴趣的(一些类覆盖等于,当你真的不想要它们)或者因为你实际上只是想计算单独的实例等
要做到这一点(例如某种哈希表的支持),您需要基于身份而不是等于的哈希码,这正是IdentityHashCode为您提供的.它很少有用,但它仍然有时可以方便. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |