hashtable相关内容

多线程环境下的Hashmap和hashtable

我对这两个集合在多线程环境中的行为感到非常困惑. 哈希表是同步的,这意味着不会有 2 个线程同时更新它的值,对吧? 解决方案 看ConcurrentHashMaps 用于线程安全映射. 它们提供了 HashTable 的所有功能,性能非常接近 HashMap. 通过不使用地图范围的锁来获得性能,该集合默认维护一个包含 16 个锁的列表,每个锁用于锁定地图的单个存储桶.您甚 ..
发布时间:2022-01-08 14:21:50 Java开发

Hashmap和Hashtable在理论上有什么区别?

hashmap和hashtable在理论上有区别吗? 我的意思不是在 Java 中给出的具体定义(或实现),而是在理论上.哈希表不是使用哈希的映射......因此是哈希映射吗? 解决方案 根据维基百科,它们是相同的: 在计算中,哈希表(哈希图)是一种用于实现关联数组(...)的数据结构 根据Wikibooks,是一样的: 哈希表或哈希映射是一种将键与值相关联的数据结 ..
发布时间:2022-01-08 14:21:15 其他开发

为什么 hash map 比 trie map 好?

trie map 是指关联数组,其中有效负载存储在 trie 而不是哈希表中. 当我使用哈希映射/表时,我使用的键通常是字符串.与某些基于 trie 的映射相比,哈希映射有哪些优势?我已经读过哈希映射更快 - 但在我看来,一致的哈希函数必须检查 (char) 数组的每个元素以获取最终哈希 - 遍历数组一次.在 trie 中,您同样必须只对数组进行一次迭代. 在我看来,这在对小对象进行编 ..
发布时间:2022-01-08 14:20:42 其他开发

如何轻松对两个 hashMap 求和?

我有两个 HashMap 我怎样才能轻松地总结它们? 意味着对于字符串“a",键将是(来自 Map1 的值 + 来自 Map2 的值)的总和? 我可以迭代 Map2 的每个项目并手动添加到 Map1. 但认为可能有更简单的方法吗? 我更喜欢将整数相加到其中一张地图中.不创建一个新的 解决方案 由于 Java 8 Map 包含 m ..
发布时间:2022-01-08 14:19:44 Java开发

java - 如何存储唯一对象以避免java Set中的重复?

如何存储唯一对象以避免java Set中的重复? 例如 考虑 Employee 对象(员工 ID、姓名、薪水......) 需要在Set中添加的对象的员工列表.我们需要对需要通过“Employee Id"标识的重复元素的Set进行限制. 最好的方法是什么? 解决方案 如果你使用的是 java.util.Set 的实现,它不应该允许重复,只要你的 equals 和 h ..
发布时间:2022-01-08 14:19:35 Java开发

C ++中的简单哈希图实现

我对 C++ 比较陌生.在 Java 中,我很容易实例化和使用 hashmap.我想知道如何在 C++ 中以简单的方式实现它,因为我看到了许多不同的实现,但对我来说它们都不简单. 解决方案 大多数编译器应该为你定义std::hash_map;在即将到来的 C++0x 标准中,它将成为标准库的一部分,如 hash_map 中的键.但是,对于其他任何事情,您都必须定义自己的散列和相等函数,然后 ..
发布时间:2022-01-08 14:04:23 C/C++开发

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

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

HashTable 和 HashMap key-value 是如何存储在内存中的?

我知道有一种散列技术应用于键以将其值存储在内存地址中. 但我不明白这里的碰撞是如何发生的?Java 使用哪种哈希算法来创建内存空间?是MD5吗? 解决方案 HashMap的基本思路是这样的: HashMap 实际上是一个包含 Key 和 Value 的特殊对象数组. 数组有一定数量的桶(槽),比如 16 个. 散列算法由每个对象都有的 hashCode() 方法提供.因此, ..
发布时间:2022-01-08 13:59:22 Java开发

hashmap 或 hashtable 中的重新散列过程

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

根据值然后键对HashMap进行排序?

可能的重复: 如何对地图进行排序关于 Java 中的值? 我有一个 HashMap 类型: HashMaph = new HashMap(); HashMap 包含一个字符串列表,而 Integer 是一个计数器,用于计算找到该字符串的次数.我想做的是根据整数对 HashMap 进行排序,然后根据字符串的字母顺序. 目前我正在记录一个单词的最大出现次数(名为 max 的 ..
发布时间:2022-01-08 13:56:41 Java开发

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

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

为什么 Hashtable 不允许空键或空值?

如 JDK 文档中所述,Hashtable 不允许空键或空值.HashMap 允许一个空键和任意数量的空值.这是为什么? 解决方案 Hashtable 是较老的类,一般不鼓励使用.也许他们看到了对空键的需求,更重要的是 - 空值,并将其添加到 HashMap 实现中. HashMap 较新,具有更高级的功能,基本上只是对 Hashtable 功能的改进.HashMap 在创建时,专门 ..
发布时间:2022-01-08 13:52:21 Java开发

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

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

超高性能C/C++哈希图(表、字典)

我需要将原始键(int,可能是 long)映射到高性能哈希映射数据结构中的结构值. 我的程序将有几百个这样的地图,每个地图通常最多有几千个条目.但是,地图会不断“刷新"或“搅动";想象一下每秒处理数百万条 add 和 delete 消息. C 或 C++ 中的哪些库具有适合此用例的数据结构?或者,您会如何建议自己构建?谢谢! 解决方案 我建议你试试 Google SparseH ..
发布时间:2022-01-08 13:47:59 C/C++开发

将重复键放入 HashMap 时会发生什么?

如果我将同一个键多次传递给 HashMap 的 put 方法,原始值会怎样?如果连值都重复了怎么办?我没有找到任何关于此的文档. 案例 1:覆盖键的值 Map mymap = new HashMap();mymap.put("1","one");mymap.put("1","不是一个");mymap.put("1","肯定不是一个");System.out.println(mymap.ge ..
发布时间:2022-01-08 13:40:16 Java开发

哈希表与树

哈希表总是比树快吗?尽管哈希表的搜索复杂度为 O(1),但假设由于散列函数设计不当,会发生大量冲突,并且如果我们使用链式结构(例如平衡树)处理冲突,那么搜索的最坏情况运行时间将是 O(log n).那么,即使在最坏的情况下,我是否可以得出大数据集或小数据集的结论,哈希表总是比树快?另外,如果我有足够的内存并且不想进行范围搜索,我可以随时使用哈希表吗? 解决方案 哈希表总是比树快吗? ..
发布时间:2022-01-05 18:49:20 其他开发

Java 中是否有有向无环图 (DAG) 数据类型,我应该使用它吗?

我正在用 Java 对电源子系统进行建模.一个简单的 SQLite 数据库包含一组线路可更换单元 (LRU) 以及它们之间的连接.我正在编写一个 Power Model API 来简化数据存储的查询,使用 DDD 模式和存储库. 我正在寻找合适的 Java 集合来为查询结果建模.LRU 连接流中有一些特殊情况需要建模: 最初,有一个带有多个端口 (电源流中的典型连接涉及一个单一的源 L ..
发布时间:2022-01-05 18:33:14 Java开发

Java泛型:包含泛型的数组

可能的重复: Java 如何:创建通用数组 通用数组创建错误 我的任务是用 Java 编写哈希表,它必须适用于任何数据类型.我写的代码的规则如下:- 哈希表必须有一个数组作为底层数据结构,其大小在构造对象时确定- 当发生冲突时,应将发生冲突的元素放入一个链表中,该链表保存哈希表中该索引(键)处的所有元素 因此,对于底层数据类型,我制作了一个 LinkedList 类型的数组(自定义 ..
发布时间:2022-01-01 18:22:32 Java开发