hash相关内容

电话簿的数据结构,它可以按姓名搜索号码,也可以按号码搜索姓名

你知道以下面试问题的解决方案吗? 为电话簿设计一个数据结构,它可以安全且有效地按名称搜索数字,也可以按数字搜索名称. 详情: 在 stackoverflow 上找到的解决方案都是关于哈希表的,但是,我必须为此构建 2 个哈希表,这需要两倍的空间. 如何以一种节省时间和空间、类型安全的方式仅使用一个数据结构? 解决方案 这种数据结构被称为多索引容器.它们在大多数编程语 ..
发布时间:2022-01-08 14:33:56 其他开发

为什么在搜索键是 O(n) 时,哈希表查找只有 O(1) 时间?

从技术上讲,根据我在这里阅读的帖子,哈希表在最坏的情况下确实是 O(n) 时间查找.但我不明白内部机制如何保证平均为 O(1) 时间. 我的理解是,给定一些 n 个元素,理想情况是有 n 个桶,这会导致 O(1) 空间.这就是我卡住的地方.假设我想查找一个键是否在字典中,这肯定需要 O(n) 时间.那么,当我想通过使用其键的哈希值来搜索元素是否在哈希表中时,为什么会有所不同呢?简而言之,使用 ..
发布时间:2022-01-08 14:33:39 其他开发

当对象 Hashcode 更改时,Hashmap 或 Hashset 中的查找会发生什么

在 Hashmap 中,提供的键的哈希码用于将值放置在哈希表中.在哈希集中,对象哈希码用于将值放置在底层哈希表中.也就是说,hashmap 的优点是你可以灵活地决定你想要什么作为 key,这样你就可以做这样的好事. 地图玩家 = 新的 HashMap(); 这可以将诸如玩家姓名之类的字符串映射到玩家本身. 我的问题是,当键的 Hashcode 发生变化时,查找会发生什么变化. 我希 ..
发布时间:2022-01-08 14:32:25 Java开发

Java 8 中字符串键的替代散列是什么?

Java 8 正在为字符串键提供替代散列,以在遇到大量键散列代码冲突时提高性能.谁能解释一下那是什么以及它是如何工作的? 解决方案 来自 core-lib-devs@openjkd的="noreferrer">这封电子邮件: 引入了新的接口 Hashable32. Hashable32提供了一个方法hash32() String 实现 Hashable32 和 hash32() ..
发布时间:2022-01-08 14:29:52 Java开发

Eclipse生成的hashCode函数好用吗?

Eclipse 源菜单有一个“生成 hashCode/equals 方法",它可以生成如下所示的函数. 字符串名称;@覆盖公共 int hashCode(){最终 int 素数 = 31;整数结果 = 1;结果 = 素数 * 结果 + ((name == null) ? 0 : name.hashCode());返回结果;}@覆盖公共布尔等于(对象 obj){如果(这 == 对象)返回真;如果( ..
发布时间:2022-01-08 14:29:36 Java开发

HashMap 和 HashTable 的区别纯粹在数据结构上

HashTable 和 HashMap 之间有什么区别纯粹在数据结构的上下文中(而不是在 Java 或任何其他语言中)? 我看到人们在同一概念上交替使用这些术语.纯粹在数据结构的上下文中是否完全没有区别? 解决方案 在计算科学术语中,map 是从键到值的关联容器映射.换句话说,您可以执行“for key K remember value V"之类的操作.然后“为键 K 获取值".映射 ..
发布时间:2022-01-08 14:27:14 其他开发

Java HashMap 哈希函数

我正在通过 Java 的 HashMap hash() 实现,如下所示 final int hash(Object k) {//一些检查h ^= k.hashCode();//这个函数确保hashCodes的不同之处仅在于//每个位位置的常数倍数都有一个有界//碰撞次数(在默认负载因子下大约为 8).h^= (h>>>20) ^ (h>>>12);返回 h ^ (h >>> 7) ^ (h >> ..
发布时间:2022-01-08 14:23:46 Java开发

类图中的 HashMap (UML)

我为我的 Java 应用程序构建 UML 2.0 类图.在我的代码中,我有 HashMap 数据类型的属性.但是,据我所知,UML 标准中没有 HashMap 数据类型.问题是 - 我可以使用 HashMap 作为类属性的数据类型吗? 更新 也许在图中我应该指向 java.util 包?并且也许将 Map 类放在图表上的这个包中? 解决方案 HashMap 无论如何都不应该出现 ..
发布时间:2022-01-08 14:19:21 Java开发

如何为android中的字符串输入生成唯一的哈希码...?

我想为 android 中的字符串生成一个唯一的哈希码.是否有任何预定义的库,或者我们必须手动生成.请任何知道的人提供链接或代码. 解决方案 这取决于你的意思: 如前所述,String.hashCode() 为您提供 32 位哈希码. 如果您想要(比如说)一个 64 位哈希码,您可以自己轻松实现. 如果您想要字符串的加密哈希,Java 加密库包括 MD5、SHA-1 等的 ..
发布时间:2022-01-08 14:12:47 Java开发

什么是编程中的哈希映射以及它可以在哪里使用

我经常听到人们谈论散列、散列映射和散列表.我想知道它们是什么以及你可以在哪里最好地使用它们. 解决方案 首先你应该阅读这篇文章. 当您使用列表并且您正在寻找一个特殊项目时,您通常必须遍历整个列表.当您有大量列表时,这非常昂贵. 哈希表可以更快,在最好的情况下,您只需一次访问即可获得所需的项目. 它是如何工作的?就像字典一样……当您在字典中查找单词“hashtable"时,您不是从 ..
发布时间:2022-01-08 14:04:11 其他开发

hashmap 或 hashtable 中的重新散列过程

当大小超过 maxthreshold 值时,如何在 hashmap 或 hashtable 中完成重新散列过程? 是否所有对都只是复制到一个新的存储桶数组中? 编辑: 重新散列后,同一个桶(链表中)的元素会发生什么?我的意思是他们会在重新散列后留在同一个桶中吗? 解决方案 问题中的最大阈值称为负载因子. 建议负载系数在 0.75 左右.负载因子定义为 (m/n),其 ..
发布时间:2022-01-08 13:58:55 Java开发

Java:一个“主要"的数或“二的幂"作为 HashMap 的大小?

许多书籍和教程都说哈希表的大小必须是素数,才能在所有桶中均匀分布密钥.但是 Java 的 HashMap 总是使用 2 的幂的大小.不应该使用素数吗?哈希表大小是“素数"还是“2 的幂"哪个更好? 解决方案 使用 2 的幂可以有效地屏蔽哈希码的最高位.因此,在这种情况下,质量差的哈希函数可能会表现得特别糟糕. Java 的 HashMap 通过不信任对象的 hashCode() 实现 ..
发布时间:2022-01-08 13:52:56 Java开发

为什么 hashmap 查找是 O(1) 即常数时间?

如果我们从 Java 的角度来看,那么我们可以说 hashmap 查找需要恒定的时间.但是内部实现呢?它仍然必须通过特定的桶(匹配哪个键的哈希码)来搜索不同的匹配键.那为什么我们说哈希图查找需要恒定的时间呢?请解释. 解决方案 在使用哈希函数的适当假设下,我们可以说哈希表查找需要 预期 O(1) 时间 (假设您使用的是标准散列方案,如线性探测或链式散列).这意味着平均而言,哈希表执行查找的 ..
发布时间:2022-01-08 13:48:56 其他开发

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

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

Laravel Auth - 使用 md5 代替集成的 Hash::make()

所以,我正在为我的网站切换到 laravel.我的旧网站目前拥有大约 500 个用户.每个用户都有一个 md5 哈希作为密码 (duh ^^). 当我切换到 laravel 时,我希望使用 Auth::attempt不幸的是,它使用自己的方法来散列密码字符串.我不希望我的所有用户都更改密码,因为我正在切换到 laravel,是否可以让 Auth 类使用 md5 代替,所以我的用户不必切换密码 ..
发布时间:2022-01-08 08:27:45 PHP

nodejs 加密模块,是否 hash.update() 将所有输入存储在内存中

我有一个 API 路由,可以代理从浏览器/客户端到 AWS S3 的文件上传. 此 API 路由尝试在文件上传时流式传输文件,以避免在服务器的内存中缓冲文件的全部内容. 但是,该路由还尝试计算文件正文的 MD5 校验和.当文件的每个部分都被分块时,hash.update() 方法会随着块被调用. http://nodejs.org/api/crypto.html#crypto_h ..
发布时间:2022-01-07 20:39:22 其他开发

Android 中 SHA1 哈希实现的问题

我有两个用于计算 SHA1 的小片段. 一个非常快但似乎不正确,另一个很慢但正确. 我认为将 FileInputStream 转换为 ByteArrayInputStream 是问题所在. 快速版本: MessageDigest md = MessageDigest.getInstance("SHA1");FileInputStream fis = new FileInputStr ..
发布时间:2022-01-07 20:12:35 Java开发