hashcode相关内容

在 Java 中重写 equals 和 hashCode 时应该考虑哪些问题?

在覆盖 equals 和 hashCode 时必须考虑哪些问题/陷阱? 解决方案 理论(适用于语言律师和数学爱好者): equals() (javadoc) 必须定义一个等价关系(它必须是自反、对称和传递em>).此外,它必须一致(如果对象没有被修改,那么它必须保持返回相同的值).此外,o.equals(null) 必须始终返回 false. hashCode() (javad ..
发布时间:2021-11-19 22:24:08 Java开发

包含通用数组的对象的 GetHashCode 覆盖

我有一个包含以下两个属性的类: public int Id { get;私人订制;}公共 T[] 值 { 获取;私人订制;} 我已经做到了 IEquatable 并像这样覆盖了 object.Equals: public override bool Equals(object obj){return Equals(obj as SimpleTableRow);}public bool Equ ..
发布时间:2021-11-18 03:16:11 C#/.NET

整数数组的 C# 哈希码

我有一个在内部只是一个整数数组的类.一旦构造数组就永远不会改变.我想预先计算一个好的哈希码,以便可以非常有效地将此类用作字典中的键.数组长度小于30项,整数一般在-1000到1000之间. 解决方案 不是很聪明,但对于大多数实际用途来说已经足够了: 编辑:由于 Henk Holterman 的评论而更改,谢谢. int hc = array.Length;foreach(数组中的 ..
发布时间:2021-11-18 02:10:26 C#/.NET

如何实现 hashCode 和 equals 方法从 ArrayList 中删除重复项

我正在从数据库模型收入中获取数据.这是它的样子 @Table(name = "收入")公共类收入扩展模型{@Column(name = "AmountDate")公共字符串金额日期;@Column(name = "金额")公共双倍金额;@Column(name = "Day")公共国际日;@Column(name = "月")公共整数月;@Column(name = "年份")公共整数年;} ..
发布时间:2021-11-18 00:25:08 Java开发

如何实现 hashCode 和 equals 方法从 ArrayList 中删除重复项

我正在从数据库模型收入中获取数据.这是它的样子 @Table(name = "收入")公共类收入扩展模型{@Column(name = "AmountDate")公共字符串金额日期;@Column(name = "金额")公共双倍金额;@Column(name = "Day")公共国际日;@Column(name = "月")公共整数月;@Column(name = "年份")公共整数年;} ..
发布时间:2021-11-18 00:23:22 Java开发

更改 HashSet/HashMap 内对象的 hashCode

我对 Java 比较陌生,对以下事情感到困惑:我通常在设置内容之前将对象添加到 ArrayList.即, Listlist = new ArrayList();布拉布拉 = 新布拉();list.add(bla);bla.setContent();//内容影响 hashCode 这种方法效果很好.我担心这种方法在与 HashSets 或 HashMaps 一起使用时是否会给我带来麻烦.内部哈希 ..
发布时间:2021-11-18 00:02:24 Java开发

ArrayList - 添加“相同"对象(相同 => 等于,hashCode),线程

我有一个问题.当我尝试将“相同"对象两次添加到 ArrayList 时会发生什么.“相同"是指单个类的对象,它与 equals() 和 hashCode() 相同.对于大多数成员变量,它具有不同的值,并且可能是从不同的线程创建的,但对于 equals() 和 hashCode() 而言,它是“相同的".那么第二个对象会替换第一个对象吗? 另外,如果两个线程试图同时将这些对象添加到 Array ..
发布时间:2021-11-17 23:59:57 Java开发

为什么每次添加新元素时 ArrayList 的 hashCode() 都会改变?

根据我对ArrayList的理解,默认容量是10,当它增长到超过10时,它会创建一个具有新容量的新对象等等.. 出于好奇,我输入了以下程序来检查 hashcode() 的 ArrayList 对象: 公共类 TestCoreJava {公共静态无效主(字符串 [] args){ArrayList al = new ArrayList();for(int i=0;i 根据上述情况,当我没有 ..
发布时间:2021-11-17 23:52:46 Java开发

使用注解生成equals/hashcode/toString

我相信我在某个地方读到有人在编译时(使用 APT)通过确定哪些字段应该是哈希/相等测试的一部分来生成 equals/hashcode/toString 方法.我在网上找不到类似的东西(我可能做梦了吗?)... 可以这样做: public class Person {@Id @GeneratedValue 私有整数 id;@Identity 私有字符串名字,姓氏;@Identity 私人日期 ..
发布时间:2021-11-17 01:02:43 Java开发

Apache Commons 等于/哈希代码构建器

我很想知道这里的人们对使用org.apache.commons.lang.builder EqualsBuilder/HashCodeBuilder用于实现 equals/hashCode?这会比自己编写更好的做法吗?它与 Hibernate 兼容吗?你有什么看法? 解决方案 commons/lang 构建器很棒,我已经使用它们多年了,没有明显的性能开销(有和没有休眠).但正如 Alain ..
发布时间:2021-11-11 23:19:17 Java开发

使用注释生成 equals/hashcode/toString

我相信我在某个地方读到有人在编译时(使用 APT)通过确定哪些字段应该是哈希/相等测试的一部分来生成 equals/hashcode/toString 方法.我在网上找不到类似的东西(我可能做梦了吗?)... 可以这样做: public class Person {@Id @GeneratedValue 私有整数 id;@Identity 私有字符串名字,姓氏;@Identity 私人日期 ..
发布时间:2021-11-10 22:31:32 Java开发

TreeSet内部使用TreeMap,那么使用Treeset时是否需要实现Hashcode方法?

我想知道当 TreeSet 的 javadocs 说 是什么意思 这个类实现了 Set 接口,由一个 TreeMap 实例支持? 在下面的示例中,我还没有实现 Hashcode 方法,但它仍然按预期工作,即它能够对对象进行排序.请注意,我故意没有实现一致的 Equals 实现来检查 TreeSet 行为. import java.util.TreeSet;公共类比较逻辑实现了 Comp ..
发布时间:2021-09-09 19:40:21 Java开发

我可以在班级使用班级成员的哈希码吗?

我有一个以最终String作为唯一ID的类.当然,我想覆盖等于,因此比较仅基于ID.那么仅返回ID的哈希码是正确的做法,如下所示? Class ItemSpec {最终的字符串名称;...@Overridepublic boolean equals(Object o){if(o!= null& o ItemSpec的实例){返回name.equalsIgnoreCase((((ItemSpec ..
发布时间:2021-05-13 20:30:02 Java开发

如何在HashSet或HashMap中使用自定义哈希函数?

由于SipHasher对于我的用例而言太慢,因此我正在尝试实现自定义哈希函数.我找到了一个例子作为进行所有编译的基础. 我当前的代码如下: 使用std :: collections :: hash_state :: {DefaultState};使用std :: collections :: {HashMap,HashSet};使用std :: default :: Default;使用s ..
发布时间:2021-05-13 20:29:59 其他开发

如何将System.HashCode.Combine与8个以上的值一起使用?

.NET Standard 2.1/.NET Core 3 介绍 System.HashCode 文档,简单地将由连续的 Combine 调用创建的哈希码相加是不是解决方案. 正确的是,静态 Combine 方法最多只允许8个值,但这些似乎只是舒适方法.要组合8个以上的值,您必须求助于实例化 HashCode 并像这样使用它: 公共重写int GetHashCode(){HashCode ..
发布时间:2021-05-13 20:29:55 C#/.NET

GetHashCode()经常重写冲突方式

我使用的是unity,而unity中没有元组,因此我创建了自己的元组类,因为我的Dictionary需要它. Dictionary 我创建的平铺类,与解决该问题并没有真正的联系(至少我认为这无济于事). 但是问题是我在元组中同时使用了负整数和正整数,并且当我将当前的 GetHashCode()与 Tuples 一起使用时,有时得 ..
发布时间:2021-05-13 20:29:52 C#/.NET

为什么要向hashCode()添加一个常量?

我是Java的新手,最近我了解了 hashCode().在关于Java hashCode()的维基百科文章上,有以下 hashCode()方法: 公共类Employee {int employeeId;字符串名称;部门部//其他方法会在这里@Overridepublic int hashCode(){int哈希= 1;哈希=哈希* 17 + employeeId;哈希=哈希* 31 + name ..
发布时间:2021-05-13 20:27:45 Java开发

Internet Explorer/Edge无法发送带有URL的片段

我目前正在开发一个公司需要在最重要的浏览器(Chrome,Firefox,Safari,IE,Edge)上部署的网站. 网站由单个index.html页面组成,其内容将根据哈希码进行替换.这意味着当我要求index.html#102时,div的内容将替换为contents [102]. 我的问题是:当询问"file:///.../index.html#102"(网站将存储在本地)时,I ..
发布时间:2021-05-09 19:24:42 前端开发

两个实例具有相同的哈希码但不相等

我正在阅读标题为Java理论与实践:对其进行散列-有效,正确地定义hashCode()和equals() 定义平等Object类有两种用于推断对象身份的方法:equals()和hashCode().在通常,如果您覆盖这些方法之一,则必须覆盖这两种方法,因为它们之间必须存在重要的关系保持.特别是,如果两个对象根据equals()方法,它们必须具有相同的hashCode()值 (尽管相反,通常情 ..
发布时间:2021-05-04 20:37:37 Java开发