草庐IT

hashmaps

全部标签

java - Java中的HashMap实现。桶索引计算是如何工作的?

我正在查看Java中HashMap的实现,但一直卡在某个地方。indexFor函数是如何计算的?staticintindexFor(inth,intlength){returnh&(length-1);}谢谢 最佳答案 哈希本身由您尝试存储的对象的hashCode()方法计算。您在此处看到的是根据散列h计算存储对象的“桶”。理想情况下,为了避免碰撞,您将拥有与h的最大可实现值相同数量的存储桶-但这可能对内存要求太高。因此,您通常拥有较少数量的具有碰撞危险的存储桶。如果h是1000,但您的底层数组中只有512个桶,您需要知道将对象放在

java - 如何在 Java 中命名 HashMap?

这可能是一个愚蠢的问题,但我从来没有找到一种令人满意的方法来命名HashMap类型的变量。在java。例如-假设我有一个HashMap其中每个桶都是对其中K是String说代表“状态”和V是Integer代表该州拥有的县数。应该HashMap命名为“mapStateCounty”、“stateToCountyMap”等?哪一个在逻辑上看起来更吸引人、更直观、更容易理解,而不会让人感到困惑和冗长? 最佳答案 我不相信任何地方都有硬性规定告诉你如何命名map,所以只要你想出一条对你(和你的队友)有意义的规则,那么它就应该是很好。就我个人

java - 如何在 Java 中命名 HashMap?

这可能是一个愚蠢的问题,但我从来没有找到一种令人满意的方法来命名HashMap类型的变量。在java。例如-假设我有一个HashMap其中每个桶都是对其中K是String说代表“状态”和V是Integer代表该州拥有的县数。应该HashMap命名为“mapStateCounty”、“stateToCountyMap”等?哪一个在逻辑上看起来更吸引人、更直观、更容易理解,而不会让人感到困惑和冗长? 最佳答案 我不相信任何地方都有硬性规定告诉你如何命名map,所以只要你想出一条对你(和你的队友)有意义的规则,那么它就应该是很好。就我个人

java - HashMaps 和 Null 值?

如何将空值传入HashMap?以下代码片段适用于填写的选项:HashMapoptions=newHashMap();options.put("name","value");Personperson=sample.searchPerson(options);System.out.println(Person.getResult().get(o).get(Id));那么问题是必须在选项和/或方法中输入什么来传递空值?我尝试了以下代码但没有成功:options.put(null,null);Personperson=sample.searchPerson(null);options.put(

java - HashMaps 和 Null 值?

如何将空值传入HashMap?以下代码片段适用于填写的选项:HashMapoptions=newHashMap();options.put("name","value");Personperson=sample.searchPerson(options);System.out.println(Person.getResult().get(o).get(Id));那么问题是必须在选项和/或方法中输入什么来传递空值?我尝试了以下代码但没有成功:options.put(null,null);Personperson=sample.searchPerson(null);options.put(

java - 如何调用存储在 HashMap 中的方法? ( java )

这个问题在这里已经有了答案:Functionpointers/delegatesinJava?(10个回答)关闭8年前。我有一个命令列表(i、h、t等),用户将在命令行/终端Java程序中输入这些命令。我想存储命令/方法对的哈希:'h',showHelp()'t',teleport()这样我就可以编写如下代码:HashMapcmdList=newHashMap();cmdList.put('h',showHelp());if(!cmdList.containsKey('h'))System.out.print("Nosuchcommand.")elsecmdList.getValue(

java - 如何调用存储在 HashMap 中的方法? ( java )

这个问题在这里已经有了答案:Functionpointers/delegatesinJava?(10个回答)关闭8年前。我有一个命令列表(i、h、t等),用户将在命令行/终端Java程序中输入这些命令。我想存储命令/方法对的哈希:'h',showHelp()'t',teleport()这样我就可以编写如下代码:HashMapcmdList=newHashMap();cmdList.put('h',showHelp());if(!cmdList.containsKey('h'))System.out.print("Nosuchcommand.")elsecmdList.getValue(

java - 如何在 Java 中迭代 HashMap 值时替换它们

我正在使用Runnable每秒自动从玩家的冷却时间中减去20,但我不知道如何在迭代时替换值的值。如何让它更新每个键的值?publicclassCoolDownTimerimplementsRunnable{@Overridepublicvoidrun(){for(Longl:playerCooldowns.values()){l=l-20;playerCooldowns.put(Key???,l);}}} 最佳答案 使用Java8:map.replaceAll((k,v)->v-20);使用Java7或更早版本:您可以遍历条目并按如

java - 如何在 Java 中迭代 HashMap 值时替换它们

我正在使用Runnable每秒自动从玩家的冷却时间中减去20,但我不知道如何在迭代时替换值的值。如何让它更新每个键的值?publicclassCoolDownTimerimplementsRunnable{@Overridepublicvoidrun(){for(Longl:playerCooldowns.values()){l=l-20;playerCooldowns.put(Key???,l);}}} 最佳答案 使用Java8:map.replaceAll((k,v)->v-20);使用Java7或更早版本:您可以遍历条目并按如

java - 如何从 HashMap 中返回键列表?

我目前正在尝试制作一个将动词变位成西类牙语的程序。我创建了一个哈希表,其中包含一个键和对象动词的实例化。键是具有动词不定式形式的字符串(例如,“hablar”)。这是我到目前为止的HashMap代码:publicclassVerbHashMap{HashMapverbHashMap;publicVerbHashMap(){verbHashMap=newHashMap();}}HashMap中每个动词的键都是基于动词的不定式。例如,字符串“hablar”是西类牙语动词的键。Verb类有一个名为getInfinitive()的方法,它返回一个包含动词不定式形式的字符串。publicbool