hashcode相关内容

可变哈希映射键是一种危险的做法吗?

使用可变对象作为 Hashmap 键是不好的做法吗?当您尝试使用已修改到足以更改其哈希码的键从 Hashmap 中检索值时会发生什么? 例如,给定 class Key{一个;//可变字段国际b;//可变字段公共整数哈希码()返回 foo(a, b);//为简洁起见省略了 setA 和 setB} 附代码 HashMapmap = new HashMap();Key key1 = new ..
发布时间:2021-12-27 16:02:06 其他开发

如何计算字符串列表的良好哈希码?

背景: 我有一个简短的字符串列表. 字符串的数量并不总是相同,但几乎总是“少数"的数量级 在我们的数据库中将这些字符串存储在第二个规范化表中 这些字符串一旦写入数据库就永远更改. 我们希望能够在查询中快速匹配这些字符串,而不会因执行大量连接而影响性能. 所以我想将所有这些字符串的哈希码存储在主表中并将其包含在我们的索引中,因此只有在哈希码匹配时数据库才会处理连接. 那 ..
发布时间:2021-12-26 20:56:40 C#/.NET

高效的 hashCode() 实现

我经常使用 IntelliJ IDEA 自动生成一个类的 hashCode() 方法,通常该方法采用以下形式: result = 31 * result + ... 我的问题是乘以 31 的目的是什么?我知道这是一个质数,但为什么要特别选择 31?此外,如果为一个特别小的/大的数据集实现一个 hashCode(),人们会以不同的方式处理这个问题吗? 解决方案 乘以 31 很快,因为 J ..
发布时间:2021-12-22 08:32:44 Java开发

为什么 hashCode() 可以为 Java 中的不同对象返回相同的值?

引自我正在阅读的书 Head第一个Java: 重点是哈希码可以相同,但不一定保证对象相等,因为 hashCode() 方法中使用的“哈希算法"可能恰好为多个返回相同的值对象. 为什么 hashCode() 方法可能会为不同的对象返回相同的值?这不会引起问题吗? 解决方案 散列 一个对象意味着“找到一个很好的、描述性的值(数字),可以被同一个实例复制一次又一次地".因为来自 Ja ..
发布时间:2021-12-22 08:03:32 Java开发

什么是“内部地址"?在爪哇?

在 Object.hashCode() 说明 在合理可行的范围内,Object 类定义的 hashCode 方法确实为不同的对象返回不同的整数.(这通常是通过将对象的内部地址转换为整数来实现的,但 Java™ 编程语言不需要这种实现技术.) 这是一个常见的误解,这与内存地址有关,但它不会在没有通知的情况下更改,并且 hashCode() 不会也不得更改对象. @Neet 提供了一 ..
发布时间:2021-12-21 09:57:57 Java开发

我应该在 JPA 实体中编写 equals() 和 hashCode() 方法吗?

我想检查实体是否在另一个实体的集合成员(@OneToMany 或 @ManyToMany)中: if (entity2.getEntities1().contains(entity1)) { } 解决方案 不一定.共有三个选项: 不要覆盖 - 因此您将使用实例.如果您使用的集合只有附加到会话的实体(因此保证是同一个实例),这很好.这是(对我而言)在许多情况下的首选方式,因为它在覆盖时需 ..
发布时间:2021-12-14 17:49:11 Java开发

默认的 .equals 和 .hashCode 如何为我的类工作?

说我有自己的班级 public class MyObj {/* ... */} 它有一些属性和方法.它不实现equals,不实现hashCode. 一旦我们调用了equals和hashCode,默认的实现是什么?从对象类?他们是什么?默认的 equals 将如何工作?默认的 hashCode 将如何工作以及将返回什么?== 只会检查它们是否引用了同一个对象,所以很简单,但是 equals ..
发布时间:2021-12-11 19:38:52 Java开发

你如何获得“对象引用"?当 toString() 和 hashCode() 被覆盖时,java 中的对象?

我想打印 Java 中对象的“对象引用"以进行调试.IE.以确保对象相同(或不同),视情况而定. 问题是有问题的类继承自另一个类,该类覆盖了通常会给我 id 的 toString() 和 hashCode(). 示例情况:运行一个多线程应用程序,我(在开发期间)想检查所有线程是否使用资源对象的相同实例. 解决方案 你到底打算用它做什么(你想做的事与你需要调用的内容有所不同). ..
发布时间:2021-12-11 19:24:55 Java开发

如何确保 hashCode() 与 equals() 一致?

当覆盖 java.lang.Object 的 equals() 函数时,javadocs 建议, 通常需要在重写该方法时重写 hashCode 方法,以维护 hashCode 方法的一般约定,即相等的对象必须具有相等的哈希码. hashCode() 方法必须为每个对象返回一个唯一整数(这在基于内存位置比较对象时很容易做到,只需返回唯一整数地址对象) 应该如何重写 hashCode ..
发布时间:2021-12-11 19:23:09 Java开发

在 Dart 中覆盖哈希码的好方法是什么?

我发现自己想要覆盖对象的 hashcode 和 ==,我想知道是否有最佳实践来实现取决于多个属性的 hashcode,而且似乎有一些 Dart 特定的注意事项. 最简单的答案是将所有属性的哈希值异或在一起,这可能还不错.在 https://www.dartlang.org/docs/dart-up-and-running/contents/ch03.html //使用 Effective ..
发布时间:2021-12-11 16:22:20 其他开发

Java 如何对 HashMap 或 HashTable 中的项目进行排序?

我想知道在添加Map(HashMap 或Hashtable)中的项目时,Java 如何对其进行排序.键是按哈希码、内存引用还是按分配优先级排序的...? 这是因为我注意到 Map 中的相同对并不总是以相同的顺序 解决方案 java.util.HashMap 是无序的;除此之外,你不能也不应该假设任何事情. 这个类不保证地图的顺序;特别是,它不保证订单会随着时间的推移保持不变. ..
发布时间:2021-12-10 16:10:34 Java开发

什么是实现 __hash__() 的正确和好方法?

什么是实现 __hash__() 的正确和好方法? 我说的是返回一个哈希码的函数,然后用于将对象插入哈希表(即字典)中. 由于 __hash__() 返回一个整数并用于将对象“装箱"到哈希表中,我假设返回的整数的值应该均匀分布于公共数据(以最小化冲突).获得这些值的好做法是什么?碰撞有问题吗?就我而言,我有一个小类,它充当容器类,其中包含一些整数、一些浮点数和一个字符串. 解决方 ..
发布时间:2021-12-10 15:49:27 Python

`##` 和 `hashCode` 有什么区别?

## 和 hashCode 方法有什么区别? 无论我使用哪个类或 hashCode 重载,它们似乎都输出相同的值.Google 也无济于事,因为它找不到符号 ##. 解决方案 AnyVal 的“子类"从散列的角度看不正确: scala>1.0.hashCoderes14:整数 = 1072693248 当然这是装箱到调用: scala>新的 java.lang.Double(1 ..
发布时间:2021-12-07 13:24:01 其他开发

快速简单的哈希码组合

人们能否推荐快速简单的方法来组合两个对象的哈希码.我不太担心冲突,因为我有一个可以有效处理冲突的哈希表,我只想要一些能尽快生成代码的东西. 阅读 SO 和网络,似乎有几个主要的候选者: 异或运算 质数乘法异或 简单的数字运算,如乘法/除法(带有溢出检查或环绕) 构建一个字符串,然后使用字符串类的哈希码方法 人们会推荐什么?为什么? 解决方案 我个人会避免 XOR - ..
发布时间:2021-12-06 19:52:39 C#/.NET

符合顺序的 Foo 对象列表的良好 GetHashCode() 覆盖

EnumerableObject : IEnumerable 包装一个 List 如果EnumerableObject a.SequenceEquals(EnumerableObject b),则它们相等. 因此,必须实现 GetHashCode.问题是对列表中的每个元素进行 XOR 运算将返回相同的哈希码,对于任何包含所有且仅具有相同元素的列表,无论顺序如何.就其工作而言,这是 ..
发布时间:2021-12-06 19:48:11 C#/.NET

如何在 .net (c#) 中为可安全存储在数据库中的字符串创建 HashCode?

引用 Eric Lippert 的 GetHashCode 指南和规则: 规则:GetHashCode 的消费者不能依赖它随着时间的推移或跨应用程序域的稳定 假设你有一个 Customer 对象有一堆字段,如名称,地址等.如果你做两个这样的物体具有完全相同的两个不同过程中的数据,它们不必返回相同的哈希代码.如果你在星期二在一个过程中,将其关闭,并再次运行程序星期三,哈希码可以是不一样. ..
发布时间:2021-12-05 12:18:20 C#/.NET

如何确定两个 JavaScript 对象的相等性?

严格相等运算符会告诉您两个对象类型是否相等.但是,有没有办法判断两个对象是否相等,很像 Java 中的哈希码值? Stack Overflow 问题 JavaScript 中是否有任何类型的 hashCode 函数? 与此问题类似,但需要更学术的答案.上面的场景说明了为什么有必要拥有一个,我想知道是否有任何等效的解决方案. 解决方案 简答 简单的答案是:不,没有通用的方法来确定 ..
发布时间:2021-11-30 21:53:53 前端开发

覆盖 GetHashCode 的最佳算法是什么?

在 .NET 中,GetHashCode 方法 用于整个 .NET 基类库的很多地方.正确实施它对于在集合中快速查找项目或在确定相等性时尤为重要. 是否有关于如何为我的自定义类实现 GetHashCode 从而不降低性能的标准算法或最佳实践? 解决方案 我通常采用类似于 Josh Bloch 的 fabulous 有效的 Java.它很快,并创建了一个不太可能导致冲突的非常好的散列. ..
发布时间:2021-11-26 23:48:43 C#/.NET

Java Array HashCode 实现

这很奇怪.有同事问了java中myArray.hashCode()的实现.我以为我知道,但后来我进行了一些测试.检查下面的代码.我注意到的奇怪的事情是,当我写出第一个 sys 时,结果是不同的.请注意,这几乎就像是在报告内存地址并修改类移动了地址或其他内容.只是想我会分享. int[] foo = new int[100000];java.util.Random rand = new java. ..
发布时间:2021-11-25 20:43:18 Java开发