问题标签 [keyset]

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 回答
43141 浏览

java - 对 keySet 的 Java 迭代

我有以下 Java 代码:

我收到来自“findBugs”的警告,告诉我以下内容:

方法myMethod使用 keySet 迭代器而不是 entrySet 迭代器效率低下。警告是在tmpList分配时完成的。

我不明白为什么这是低效的。事实上,该keys列表只计算一次。任何意见?谢谢。

0 投票
1 回答
781 浏览

ruby - Ruby - 哈希不存储密钥

我在 irb 中执行了以下操作:

为什么一旦我将密钥添加"a"到哈希中,它就不会出现在结果中Hash#keys

谢谢

0 投票
5 回答
2725 浏览

java - WeakHashMap 的 keySet 条目永远不会为空吗?

如果我遍历 WeakHashMap 的键集,是否需要检查空值?

换句话说,WeakHashMap 的元素可以在我迭代它们时被收集吗?

编辑

为了这个问题,可以假设null哈希图中没有添加任何条目。

0 投票
1 回答
542 浏览

java - Java:HashMap 声称它有密钥,但不知何故没有

我有一个 HashMap 将我的 Context 类的对象映射到整数。在 Context 类中,我确实覆盖了 java.lang.Object 的 public int hashCode() 和 public boolean equals(Object c)。但是,我在遍历它时遇到问题:

我想要(例如)获取分配给每个 Context 对象的整数值,所以我遍历映射的键集。但它不起作用,因为地图说它没有指定的键:

输出是

据我了解,当给定一个键时,映射首先检查哈希码是否匹配,然后检查是否相等。两者都是这种情况,'to'对象的哈希码和键集中的第一个对象匹配并且它们也相等。有趣的是,当我将 hashCode() 函数的返回值更改为常量(这是有效的,但出于性能原因不推荐)时,它可以工作。但我不明白为什么这会有所不同,因为 156349==156349 就像 7==7 一样。

我很困惑,我担心我错过了一些非常明显的东西,只是看不到它。如果是这样的话,我感到羞耻,但我仍然希望得到提示:-)

非常感谢!

0 投票
3 回答
5509 浏览

java - 避免 map.get(key) 方法

我有以下代码,但我看到在迭代 Map 键时从 Map 中检索值keySet()是一个错误,即使使用 findBugs 我收到警告WMI_WRONG_MAP_ITERATOR

那么为什么这不好,我该如何解决呢?

谢谢。

0 投票
3 回答
1634 浏览

java - Map.keySet() 和 Set.addAll 抛出 NullPoniterException

这是一个旧代码,正在调试它。我有一个Map大小为 2 的(myMap)(当然)。键是null1

while循环仅迭代一次。我不确定这里有什么问题。有什么问题吗?

请帮我。提前致谢。

更新:

现在我在异常以下mySet.addAll(myMap.keySet());

0 投票
5 回答
119429 浏览

java - java集合 - 地图中的keyset()与entrySet()

我把一个字符串数组元素是一个映射,其中字符串数组的元素是键,单词的频率是值,例如:

那么地图将有类似的条目[ if:1, it:2 .... ]

打印所有键:"if","it","is","to","be","it","is","up","me","to","delegate"

打印所有键值对:

使用 entry set 打印所有值:

但是下面的代码块应该打印与上面完全相同的输出,但它没有:

它打印:

但是如果我们在 while 循环中取消注释第 1 行,即

并评论该行

然后我们得到所有的键:{"if","it","is","to","be","it","is","up","me","to","delegate"};

如果我们使用m.get()with itr2.next(),那么迭代器没有几个键!

0 投票
4 回答
10415 浏览

java - 将 hashmap 转换为 stringarray

我正在尝试将哈希图转换为数组,我可以将其放入创建的字符串数组中。然而,我得到了 java.lang。我已将我的 Drinkar.keySet().toArray() 类型转换为 String[],但它仍然无法正常工作。

0 投票
2 回答
70923 浏览

lua - lua:检索表中的键列表

我需要知道如何在 lua 中检索表的键集。例如,如果我有下表:

我想检索一个如下所示的表:

0 投票
1 回答
291 浏览

c++ - Find Algorithm over Map Keyset (c++)

Is there a way to use the .find(itr, itr, value) algorithm over the keyset of a map? I know you could use an iterator over the map to transfer the key values into a set (and then use that), but I wasn't sure if there was a quicker way to do so.