Tag: hashmap

Java中的HashMap实现。 水桶指数计算如何工作?

我正在看Java中的HashMap的实现,并坚持一点。 如何计算indexFor函数? static int indexFor(int h, int length) { return h & (length-1); } 谢谢

如何从哈希表中返回键列表?

我目前正在尝试制作一个将动词连接​​成西class牙语的程序。 我创build了一个包含对象动词的键和实例的哈希表。 关键是具有动词不定式forms的string(例如“hablar”)。 这是我到目前为止的散列图的代码: public class VerbHashMap { HashMap<String, Verb> verbHashMap; public VerbHashMap(){ verbHashMap = new HashMap(); } } 在HashMap中的每个动词的关键是基于动词的不定式forms。 例如,string“hablar”是西class牙语动词的关键。 类动词有一个名为getInfinitive()的方法,它返回一个包含动词不定式forms的string。 public boolean addVerb(Verb verb){ if(verbHashMap.containsValue(verb.getInfinitive()){ return false; } else{ verbHashMap.put(verb.getInfinitive(), verb); return true; } } 问题是创build一个方法的最有效方法是按照字母顺序返回哈希表中所有动词的列表? 我应该有方法返回一个ArrayList,其中包含所有对象的哈希表中的键? 还是有更有效率的方法去做这件事?

Java – 在HashMap中获取密钥的索引?

在Java中,如果我正在循环HashMap的keySet() ,我怎么(在循环内),获取该键的数字索引? 基本上,当我通过地图循环,我想能够得到0,1,2 …我认为这将比每次迭代声明一个int和增量更清洁。 谢谢。

性能Haskell散列结构。

我正在写程序,做了很多表查找。 就这样,当我偶然发现Data.Map (当然),还有Data.HashMap和Data.Hashtable时,我正在Data.Map Haskell文档。 我不是散列algorithm方面的专家,在检查包之后,他们看起来都非常相似。 因此我想知道: 1:如果有什么重大区别? 2:在大约4000个键值对的地图/表上,查找量最大的是哪一个?

Java HashMap.clear()和remove()的内存有效吗?

考虑下面的HashMap.clear()代码: /** * Removes all of the mappings from this map. * The map will be empty after this call returns. */ public void clear() { modCount++; Entry[] tab = table; for (int i = 0; i < tab.length; i++) tab[i] = null; size = 0; } 看来, Entry对象的内部数组( table )永远不会收缩。 所以,当我将10000个元素添加到地图中,然后调用map.clear() ,它将在内部数组中保留10000个空值。 所以,我的问题是,JVM如何处理这个没有任何数组的数组,因此HashMap内存是有效的?

查找并replace文件中的单词/行

我有一个文件(更具体地说,一个log4jconfiguration文件),我希望能够读取文件,并挑出代码中的某些行,并将其replace。 例如,在文件中有一串文本,指示它存储的目录或logging器的级别。 我希望能够在不读取文件的情况下replace这些文本string,将其写入另一个文件并删除原始文件。 有没有一种更有效的方法来查找和replace使用Java的文件中的文本? 以下是我正在尝试使用的文本文件的示例: log4j.rootLogger=DEBUG, A0 log4j.appender.A0=org.apache.log4j.RollingFileAppender log4j.appender.A0.File=C:/log.txt log4j.appender.A0.MaxFileSize=100KB log4j.appender.A0.MaxBackupIndex=1 log4j.appender.A0.layout=org.apache.log4j.RollingFileAppender log4j.appender.A0.layout.ConversionPattern=%-4r [%t] %-5p: %c %x – %m%n 我希望能够读取文件并用另一个级别replace“DEBUG”,或replace文件目录名称“C:/log.txt”。 日志configuration文件也是用xml编写的。 下面是一个例子。 <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration> <appender class="org.apache.log4j.RollingFileAppender" name="A0"> <param name="append" value="false"/> <param name="File" value="C:/log/.txt"/> <param name="MaxBackupIndex" value="1"/> <param name="MaxFileSize" value="100KB"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-4r [%t] %-5p: %c %x […]

实现一个HashMap

如何去从头开始在C中创build一个HashMap? 将考虑什么参数,以及如何testing散列表有多好? 就像在你说你的哈希映射完成之前需要运行的基准testing用例一样。

按键排列golang映射值

在主题函数返回的代码中迭代返回的映射时,键不会按顺序显示。 我怎样才能得到钥匙按顺序sorting映射,以便按键顺序和值对应? 这是代码 。

如何做一个hashmaps数组?

这是我试图做的,但它给了我一个警告: HashMap<String, String>[] responseArray = new HashMap[games.size()]; types安全性:typesHashMap []的expression式需要未经检查的转换以符合HashMap []

clojure将lazy-seq转换为哈希映射

我是clojure初学者。 我如何从lazySeq创build一个地图? (def fields [:name :age :color]) (def values ["joe" 32 "red"]) (def record (interleave fields values)) (def mymap (into {} record)) ;; ???? ;; (get mymap :age) ;; 32