问题标签 [hashmap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
705 浏览

java - 为什么 AbstractCollection 不实现 equals()?

你知道吗 :

将输出:

这是由于AbstractCollectionHashMap$Values继承自)不覆盖#equals().

你知道为什么会这样吗?

0 投票
7 回答
9979 浏览

stl - 如何使用 SGI STL hash_map?

我正在尝试使用从他们的网站下载的 SGI STL 实现。我想使用 hashmap,因为我必须存储大约 5.000.000 条记录,但这应该很好:我需要能够非常快速地访问它。我试过stedext::hash_map了,但速度很慢,因为我无法设置初始大小。顺便说一句,有可能这样做吗?如果我将附加路径添加到我的 MS Visual Studio,我什至无法从 SGI 站点编译示例。我收到一条错误消息:

有没有其他人遇到过这样的问题?

0 投票
17 回答
61256 浏览

algorithm - 哈希查找和二分查找哪个更快?

当给定一组静态对象(从某种意义上说是静态的,一旦加载它就很少改变),需要以最佳性能重复并发查找,哪个更好,HashMap或者使用一些自定义比较器进行二进制搜索的数组?

答案是对象还是结构类型的函数?散列和/或相等的函数性能?哈希唯一性?列表大小? Hashset尺寸/设置尺寸?

我正在查看的集合的大小可以从 500k 到 10m 不等——以防该信息有用。

虽然我正在寻找 C# 答案,但我认为真正的数学答案不在于语言,所以我不包括那个标签。但是,如果需要注意 C# 特定的事情,则需要该信息。

0 投票
17 回答
713976 浏览

javascript - JavaScript hashmap 等价物

正如此答案的更新 3 中所述,此表示法:

实际上并没有散列对象X;它实际上只是转换X为一个字符串(.toString()如果它是一个对象,或者是各种原始类型的其他一些内置转换),然后在“ hash”中查找该字符串,而不对其进行散列。也不会检查对象相等性 - 如果两个不同的对象具有相同的字符串转换,它们只会相互覆盖。

鉴于此 - JavaScript 中是否有任何有效的 hashmap 实现?

(例如,Google 的第二个结果javascript hashmap产生的实现对于任何操作都是 O(n)。各种其他结果忽略了具有等效字符串表示的不同对象相互覆盖的事实。

0 投票
9 回答
52529 浏览

java - HashMap 初始化参数(load/initialcapacity)

我应该传递什么值来为 N 个项目创建一个有效HashMap/基于结构的结构?HashMap

在 anArrayList中,有效数是 N(N 已经假设未来增长)。a 的参数应该是什么HashMap?((int)(N * 0.75d), 0.75d)?更多的?较少的?改变负载系数有什么影响?

0 投票
3 回答
8625 浏览

java - 在 Java 对象中存储 MATLAB 结构

我在 MATLAB 中使用 Java HashMap

虽然字符串、数组和矩阵可以无缝地使用它

结构不




使它适用于结构的最简单/最优雅的方法是什么?

0 投票
9 回答
3507 浏览

java - 奇怪的 HashMap.put() 行为

我正在尝试解决间歇性故障,该故障似乎与从 HashMap 中删除对象然后使用新键放回相同的对象有关。我的 HashMap 创建如下:

重新分配的代码如下:

我看到的间歇性行为是,在此之后立即执行的代码取决于可定位的事务对象似乎没有使用新的事务 ID 找到事务对象。但是,在未来的某个时间点,可以定位交易。因此,拉扯稻草,是否有任何异步影响 put() 或 remove 可能导致这种行为?

我应该提一下,据我所知,容器只被一个线程访问。我已经在他的文档中读到 HashMap 类不是“同步的”。

0 投票
5 回答
99903 浏览

java - 如何在 Java 中使用 foreach 循环来遍历 HashMap 中的值?

我正在尝试编译以下代码:

我在 for 行中收到一条错误消息:

getData()方法返回一个Object(但在这种情况下,Object返回的具有HashMap结构)。 MyClass.Key是我为我的应用程序创建的一个枚举(在另一个类文件中 - MyClass)。

当我在 中创建具有相同结构的 foreach 循环时MyClass.java,我没有遇到这个问题。

我究竟做错了什么?

0 投票
7 回答
1794 浏览

java - 检查对象是否来自另一个(例如固定)对象列表的最佳方法是什么?

目前,我创建了一个 HashMap,其中 Object Id 作为键,1 作为值。该方法会询问 Object/Id 并检查是否有匹配的键。

那样行吗?或者,是否有更好的选择?

0 投票
4 回答
2997 浏览

java - 2-D(并发)HashMap:2-property key type?哈希图的哈希图?[更新]

所以我需要一个二维的ConcurrentHashMap.

它必须尽可能快,因为我将非常频繁地添加和更新它的值。它在多线程应用程序中,因此选择使用 ConcurrentHashMap 而不仅仅是 HashMap。

“x”和“y”索引都是具有已知范围(0 到 40,000,000)的整数。

我需要知道的是:实现这一点的最有效方法是什么,以便尽可能快?最明显的路线是做一个文字二维哈希图:

ConcurrentHashMap<Integer, ConcurrentHashMap<Integer, ValueObj>> foo;

equals()或者我可以创建一个具有两个属性 x 和 y 的私有类“IntPair”,并将其用作键......但如果我这样做,最有效的方法是什么hashcode()?我最终会分配太多新IntPair的吗?我可以为我分配的每个 x/y保留一组IntPairs,然后使用纯粹的自反 equals() 以便我只检查完全相同的对象实例吗?


更新:

现在我已经仔细研究了 Integer.valueOf(int),它使用的特定缓存模型在这里没有意义,因为我正在处理一个非常稀疏的矩阵,其中包含不可预测的条目。我真的需要缓存所有使用的 IntPair,而不是预先指定的子集。

直观地说,在我看来,在大地图中查找 IntPair 以查看我是否已经创建了它,实际上,与仅在大“2-D”中查找它或多或少相同ConcurrentHashMap 无论如何,不​​是吗?因此,这里的解决方案似乎真的是new IntPair(x,y)每次我查找密钥时都使用它。是的?