Questions tagged «hashmap»

使用哈希函数将标识值(称为键)映射到其关联值的数据结构

7
在R中使用字典/列表
我有一个琐碎的问题:我无法在R中找到字典数据结构,所以我改用列表(例如“ word”-> number)。所以,现在我有问题如何获取键列表。有人知道吗
89 r  list  hashmap  lookup 


7
JavaScript哈希图如何实现?
我目前在OpenLayers上工作,并且有大量数据可以绘制到矢量层中(大于100000个矢量)。 我现在正尝试将所有这些向量放入JavaScript哈希图中以分析性能。我想知道如何在JavaScript中实现哈希图,它是真正的哈希函数还是只是使用简单数据结构和搜索算法的包装函数?


7
如何创建HashMap文字?
如何在Rust中创建HashMap文字?在Python中,我可以这样做: hashmap = { 'element0': { 'name': 'My New Element', 'childs': { 'child0': { 'name': 'Child For Element 0', 'childs': { ... } } } }, ... } 在Go中这样: type Node struct { name string childs map[string]Node } hashmap := map[string]Node { "element0": Node{ "My New Element", map[string]Node { 'child0': …
87 hashmap  rust 

5
固定大小的HashMap的最佳容量和负载因子是多少?
我正在尝试找出特定情况下的最佳容量和负载系数。我想我的主旨是,但我仍然要感谢比我知识渊博的人的确认。:) 如果我知道我的HashMap将充满以包含100个对象,并且大部分时间将花费100个对象,那么我猜最佳值是初始容量100和负载因子1?还是我需要101个容量,或者还有其他陷阱? 编辑:好的,我预留了几个小时并做了一些测试。结果如下: 奇怪的是,容量,容量+1,容量+2,容量1甚至容量10都产生完全相同的结果。我希望至少容量1和容量10会产生较差的结果。 使用初始容量(与使用默认值16相反)可以显着改善put()-快30%。 如果负载因子为1,则对于较少数量的对象将具有相同的性能,而对于较大数量的对象(> 100000)将具有更好的性能。但是,这并不能与对象的数量成比例地提高。我怀疑还有其他因素会影响结果。 对于不同数量的对象/容量,get()性能略有不同,但是尽管情况可能会略有不同,但是通常不受初始容量或负载因子的影响。 EDIT2:我也添加了一些图表。在初始化HashMap并将其填充到最大容量的情况下,这是一个说明负载系数0.75与1之间的差异的示例。y标度是时间(单位为ms)(越小越好),x标度是大小(对象数)。由于大小线性变化,因此所需的时间也线性增长。 所以,让我们看看我得到了什么。以下两个图表显示了负载系数的差异。第一张图显示了当HashMap满负荷时会发生什么;负载系数0.75由于调整大小而表现较差。但是,情况并没有一直恶化,而且还有各种各样的颠簸-我想GC在这方面起着重要作用。负载系数1.25与1相同,因此未包含在图表中。 该图表表明0.75由于调整大小而变差;如果我们将HashMap填充到一半容量,则0.75并不差,只是...有所不同(并且它应该使用更少的内存,并且具有显着更好的迭代性能)。 我想展示一件事。这是针对所有三个负载因子和不同的HashMap大小获得的性能。恒定不变,除了负载因子1的一个峰值外,几乎没有变化。我真的很想知道那是什么(可能是GC,但谁知道)。 这是那些有兴趣的代码: import java.util.HashMap; import java.util.Map; public class HashMapTest { // capacity - numbers high as 10000000 require -mx1536m -ms1536m JVM parameters public static final int CAPACITY = 10000000; public static final int ITERATIONS = 10000; // set to …
85 java  hashmap 

10
超高性能C / C ++哈希图(表,字典)
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 5年前关闭。 改善这个问题 我需要将原始键(int,也许很长)映射为高性能哈希映射数据结构中的结构值。 我的程序将包含几百个这样的映射,每个映射通常最多具有数千个条目。但是,这些地图会不断“刷新”或“搅动”;想象处理数以百万计add和delete消息的第二。 C或C ++中的哪些库具有适合此用例的数据结构?或者,您如何建议自己建造?谢谢!


12
Java HashMap keySet()迭代顺序是否一致?
我了解从地图的keySet()方法返回的Set不能保证任何特定的顺序。 我的问题是,它可以确保多次迭代的顺序相同吗?例如 Map<K,V> map = getMap(); for( K k : map.keySet() ) { } ... for( K k : map.keySet() ) { } 在上面的代码中,假设映射不修改,将迭代在按键组处于相同的顺序。使用Sun的jdk15,它会以相同的顺序进行迭代,但是在我依赖此行为之前,我想知道所有JDK是否都将执行相同的操作。 编辑 从答案中我看到我不能依靠它。太糟糕了。我希望能够不必建立一些新的Collection来保证我的订购而摆脱困境。我的代码需要进行迭代,执行一些逻辑,然后以相同的顺序再次进行迭代。我只是从keySet创建一个新的ArrayList来保证顺序。


9
Android-从HashMap获得价值
我试图在Android中的HashMap上进行搜索,但是出现问题: 考虑以下示例: HashMap<String, String> meMap=new HashMap<String, String>(); meMap.put("Color1","Red"); meMap.put("Color2","Blue"); meMap.put("Color3","Green"); meMap.put("Color4","White"); 现在,我想对其进行迭代并获取每种颜色的值,并希望在“ Toast”中显示。如何显示?

9
根据键对哈希图进行排序
我在Java中具有以下哈希图: {B046 = 0.0,A061 = 3.0,A071 = 0.0,B085 = 0.0,B075 = 3.0,B076 = 9.0,B086 = 3.0,B095 = 0.0,B096 = 0.0,A052 = 0.0,B066 = 0.0,B056 = 9.0,B065 = 0.0,B055 = 9.0} 我应该如何对哈希图进行排序,以便考虑字母和数字? 生成的哈希图应如下所示: {A052 = 0.0,A061 = 3.0,A071 = 0.0,B046 = 0.0,B055 = 9.0,B056 = 9.0,B065 = 0.0,B066 = 0.0,B075 = …
79 java  hashmap 


9
为什么HashMap值不转换为List?
我正在将值放入形式的哈希图中, Map<Long, Double> highLowValueMap=new HashMap<Long, Double>(); highLowValueMap.put(1l, 10.0); highLowValueMap.put(2l, 20.0); 我想通过使用values()map方法创建一个列表。 List<Double> valuesToMatch=new ArrayList<>(); valuesToMatch=(List<Double>) highLowValueMap.values(); 要么 List<Double> valuesToMatch=(List<Double>) highLowValueMap.values(); 但是,它将引发异常: 线程“主”中的异常java.lang.ClassCastException: java.util.HashMap $ Values无法转换为java.util.List 但是它允许我将其传递给列表的创建: List<Double> valuesToMatch = new ArrayList<Double>( highLowValueMap.values());


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.