问题标签 [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 投票
7 回答
6066 浏览

java - 有效地遍历哈希图中的所有 MATCHING 键?

HashMap有数百万个条目。

需要检索其键与一组特定条件匹配的所有条目(在这种情况下,每个键都是具有两个整数属性的对象;我需要检索其中每个整数都在指定范围内的所有键)。

迭代所有这些键的最快、最有效的方法是什么?

更新: 在这种特殊情况下,虽然我没有预先指定它,但键中的第一个整数自然优先于第二个整数。

0 投票
3 回答
2173 浏览

java - 每次我使用 .put() 时,HashMap 都会被覆盖

我的申请与股票市场有关。我有一个持续更新名为 Price 的对象的提要。Price 有一个 HashMap,用于存储安全代码(String)和价格(Double)。每次出现新价格时,此对象都会更新。

该应用程序应该扫描价格的大动作。我有一个名为 Poller 的单独类,它每秒轮询 Price 对象并拍摄价格快照。快照是如上所述的 HashMap。然后,我想将这个价格的 HashMap 与 pollNumber 一起存储在另一个 HashMap 中,我稍后可以传递 pollNumber 并在对应于该 pollNumber 的时间获取价格。

但相反,我得到了所有以前的价格被覆盖并输出类似于下面的。

0:{MSFT=17.67,AAPL=93.85,GOOG=333.86} {0={MSFT=17.67,AAPL=93.85,GOOG=333.86}}

1 : {MSFT=17.64, AAPL=93.85, GOOG=334.02} {0={MSFT=17.64, AAPL=93.85, GOOG=334.02}, 1={MSFT=17.64, AAPL=93.85, GOOG=334.02}}

2 : {MSFT=17.64, AAPL=93.85, GOOG=334.08} {0={MSFT=17.64, AAPL=93.85, GOOG=334.08}, 1={MSFT=17.64, AAPL=93.85, GOOG=334.08}, 2= {微软=17.64,苹果=93.85,谷歌=334.08}}

3 : {MSFT=17.65, AAPL=93.83, GOOG=334.08} {0={MSFT=17.65, AAPL=93.83, GOOG=334.08}, 1={MSFT=17.65, AAPL=93.83, GOOG=334.08}, 2= {MSFT=17.65, AAPL=93.83, GOOG=334.08}, 3={MSFT=17.65, AAPL=93.83, GOOG=334.08}}

4 : {MSFT=17.64, AAPL=93.83, GOOG=334.07} {0={MSFT=17.64, AAPL=93.83, GOOG=334.07}, 1={MSFT=17.64, AAPL=93.83, GOOG=334.07}, 2= {MSFT=17.64, AAPL=93.83, GOOG=334.07}, 3={MSFT=17.64, AAPL=93.83, GOOG=334.07}, 4={MSFT=17.64, AAPL=93.83, GOOG=334.07}}

正如您所看到的,当我打印应该具有不同价格系列的整个 HashMap 时,它们都是相同的。

基本上 .put() 函数以某种方式覆盖旧条目。

如果您知道如何修复该行为,以便 HashMap(大的)每次都有一个新的价格序列条目。



0 投票
4 回答
2227 浏览

c++ - C++ stdext hashmap 效率 - 重组(?)

我遇到了一个与 stdext hashmap 相关的非常奇怪的事情。我必须处理很多对象,并且优先考虑快速访问元素。我的程序从文件中读取对象值,如果它是新元素,则将此值插入哈希图中,如果它是已处理的对象,则更改哈希图中的存储值。

我的问题与hashmap(stdext). 我还没有找到这个容器的任何初始化选项。

键元素是一个无符号整数 ( uint64),该对象与该键一起存储在哈希图中,大小为 160 KB。
该程序正在运行,但是当 hashmap 中的对象数量达到限制时,我不得不等待太多。

在此之后,哈希图再次运行良好,正如我所期望的那样。我想也许这是一个重组步骤。

但这些步骤很关键,因为在处理一定数量的物体后,这一步需要 5 个小时才能完成,而正常的处理步骤大约需要 2-3 分钟。此后,处理变为“正常”。

有没有人遇到过这样的问题?有人对这个哈希图有更深入的了解吗?我没有找到与该主题相关的任何内容。


我正在尝试使用具有非默认值的 hashmap 参数:bucket_sizeand min_buckets。其默认值为bucket_size=4min_buckets=8。我已将 xhash 文件中的它们更改为更大的值,因为我没有设法从代码中更改这些值。我认为这min_buckets在我的应用程序中至关重要,我尝试“微调”以获得更好的性能,避免重组步骤。

但是所以我遇到了另一个问题,在我尝试清除哈希图之前一切正常。这需要很多时间。当我将它与默认值一起使用时,运行速度非常快。

更改 xhash 文件是不是一个糟糕的步骤?以前有人用过非默认值吗?这种缓慢清除的原因是什么?

我的第二个问题与在哈希图中存储指针有关。这个想法很清楚,但我怎么能设法释放指向的内存。我应该创建指向我的对象的指针;这些指针存储在 hashmap 中,当我需要该值时,我可以让它解除对这个指针的引用。但是保存地图后如何清除内存呢?也许这是一个微不足道的问题,但现在我没有看到解决方案。

感谢您已经发布的答案。

0 投票
9 回答
2048 浏览

java - 如何形成从 HashMap 中提取的值的有序列表?

我的问题实际上比问题所暗示的更微妙,但想保持标题简短。

我有一个HashMap<String, File>对象File作为值。键是作为实例String name一部分的字段File。我需要遍历 中的值HashMap并将它们作为单个返回String

这是我目前拥有的:

这可以完成工作,但理想情况下,我希望将单独的File值附加到按StringBuilder顺序排列的int fileID,这是File类的一个字段。

希望我已经说得够清楚了。

0 投票
1 回答
1462 浏览

delphi - D2009 更快的 CompareText 实现

我在我的程序中广泛使用哈希映射数据结构。我正在使用 Barry Kelly 在 Codegear 论坛上发布的哈希映射实现。该实现在内部使用 RTL 的 CompareText 函数。分析让我意识到在 SysUtils CompareText 函数上花费了很多时间。

我看了看

快码网站

并找到了一些更快的 CompareText 实现。不幸的是,它们似乎不适用于 D2009 及其 unicode 字符串。

现在的问题是:是否有类似的更快的版本支持 D2009 字符串?在使用哈希映射时,CompareText 函数似乎被调用了很多(至少在我当前使用的实现中),所以很少的性能改进真的会产生影响。或者那里提供的实现也适用于 unicode 字符串?

0 投票
3 回答
4252 浏览

java - 关于 Hibernate 使用 Dynamic-Map 实体模式保存

在下面的例子中,如何在不加载角色的情况下将角色的值保存到 id=1 的角色中?我努力了:

但这会导致:

不保存角色,控制台显示此 SQL: Hibernate: insert into user (ts, address) values (?, ?)

任何帮助将不胜感激。

0 投票
7 回答
188695 浏览

java - 在 Java 中创建空地图的最佳方法

我需要创建一个空地图。

问题是上面的代码产生了这个警告: Type safety: Unchecked cast from Map to HashMap

创建这个空地图的最佳方法是什么?

0 投票
3 回答
2679 浏览

c - 对于这两种情况,C 中的最佳数据结构是什么?

我有点需要决定这个,看看我是否能在我的学校项目截止日期前的几个小时内实现它,但我对数据结构不太了解,我需要建议......

我需要做两件事,他们可能会使用不同的数据结构。

  1. 我需要一个数据结构来保存个人资料记录。个人资料必须可以按姓名和社会安全号码进行搜索。SSN 是独一无二的,所以我可能可以利用它来获得优势?我想哈希图是最好的选择吗?但是如何在哈希映射中使用 SSN 来利用它作为查找特定配置文件的优势?一个基本且易于理解的解释将不胜感激。

  2. 我需要一个数据结构来保存有关城市的记录。我需要知道访问者最多的城市、访问量较少的城市以及访问特定城市的客户(从#1 中的数据结构中提取有关客户数据的配置文件)。

这是我的项目需要的第三个数据结构,它是我不知道从哪里开始的数据结构。如果可能,请提供有关使用哪种类型的数据结构的建议,并以粗体显示如何旧数据的示例。

注意:第一个数据结构已经完成(我在上一个问题
中谈到过)。第二个发布在 #1 上,尽管其他小组成员正在处理这个问题,但我只需要知道我们正在尝试做的是否是“最佳”方法。第三个是#2,我最需要帮助的那个。

0 投票
7 回答
45806 浏览

ruby - Ruby 哈希白名单过滤器

我试图弄清楚如何将键和值对从一个过滤器过滤到另一个过滤器

例如我想取这个哈希

谢谢你的帮助

编辑:可能应该提到,在这个例子中,我希望它充当白名单过滤器。也就是说,我知道我想要什么,而不是我不想要什么。

0 投票
5 回答
19629 浏览

java - 在 Java 中存储国家代码、名称和大陆的最佳方式

我想要一个ListArray某种,存储有关每个国家/地区的信息:

  • 2个字母代码
  • 巴西等国名
  • 世界各大洲/地区,如东欧、北美等。

我将手动将每个国家/地区分类为区域/大陆(但如果存在自动执行此操作的方法,请告诉我)。这个问题是关于如何存储和访问国家的。例如,我希望能够检索北美的所有国家/地区。

我不想使用本地文本文件等,因为该项目将使用 Google Web Toolkit 转换为 javascript。但是存储在 Enum 或其他某种资源文件中,将其与其他代码分开,这才是我真正想要的。