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

android - 使用 SharedPreferences.getAll() 调用 keySet()

我是 Java 和 Android 的新手,所以希望我的问题是有意义的(我想我知道我在问什么!)

我正在研究书中的一个例子,我有一个带有以下语句的查询:

savedSearches 是一个 SharedPreferences 对象。

savedSearches.getAll()返回一个允许调用的 Map KeySet()。我无法理解的是如何KeySet()调用。我的印象是,如果您要在代码中使用类/接口,那么您需要导入它或导入直接或间接扩展/实现进行调用的对象的类/接口,在这种情况下是参考到地图。

我正在处理的示例导入以下内容:

我已经查看了 Java 和 Android API,但我看不到在上述任何一个中都实现了 Map(除非我错过了它!)所以原则上我不应该能够调用KeySet(). 那么如何进行此调用KeySet()呢?

希望以上内容具有某种意义:/任何有助于我理解这一点的正确方向的帮助或指示将不胜感激。

0 投票
1 回答
3021 浏览

java - HashMap 中的重复键

我的 HashMaps 有一个奇怪的情况。在遍历 HashMap 的 keySet() 时,我得到了重复的值。在尝试获取值时,我得到了 NULL。

这是我的 HashMap 实现:

从 CSV 文件中读取行时,我正在用值填充 HashMap。
我在 CSV 中有这样的内容(原始列表更长):

Location_Code、Street_Name、开始、结束、奇偶

我用逗号分隔一行,修剪值并用数据填充 HashMap:

问题就从这里开始。如果我遍历 keySet():

我有类似的东西:

  • 贾斯特街
  • 另一条街
  • 另一条街
  • 贾斯特街
  • 贾斯特街

当我尝试在通过 HashMap 迭代期间使用 .get(key) 方法访问数据时,有时我会得到空值。所以我正在失去价值。:(

我的问题是:在 HashMap 中有重复的键怎么可能是真实的?我做错了什么。

UPD:密钥是唯一的。在另一个班级发现问题。

0 投票
1 回答
604 浏览

java - 在 Java 中使用地图时出现意外/未定义的结果

我正在做一些工作来推荐文档,为此我使用了余弦相似度方法。这是该方法的代码:

问题是结果会根据参数传递的顺序而有所不同。例如,如果我调用cosineSimilarity(v1, v2)它将返回0.3,但如果我调用cosineSimilarity(v2, v1)它将返回一个完全不同的值。

我认为这与返回一个由地图支持的集合的事实有关Map.keySet() ,但我并不完全理解这一点的含义。

任何人都可以看到该方法出错的地方吗?

0 投票
3 回答
5954 浏览

java - Java TreeMap 包含一个键,但 containsKey 调用返回 false(即使键是完全相同的未更改对象)

为什么可以循环keySetTreeMap 并获得一个.containsKey == false

经过很多,很多不同的迭代和调用这条线被击中。Amap.get(thisObject)会返回null。但调试显示键(相同的引用、值和哈希)和实际值在映射中。地图很小(25 个元素)TreeMap<Long, Double>

更新:

正如@rgettman猜测的那样,在构造 TreeMap 时使用了一种自定义排序Comparator(没有看到它,因为它是从另一个类构造的)。这个比较器只是(我猜)从这里复制粘贴

改变Comparator

解决问题。这个问题在数百万次操作之后出现的原因是,没有任何情况下映射具有两个不同键的两个相似值,因为这在上下文中是非常不可能的。

所以在:

它失败。

谢谢你的帮助!

0 投票
4 回答
1236 浏览

java - 在使用 2 个不同的 HashMap 时,我可以使用第一个而不是第二个创建一个 keySet

HashMap在一个类中使用 2 个不同的 s,当我keySet()用第一个(getExitString()方法)调用方法时,它工作正常,但是当我用第二个(getLockedDoors()方法)调用它时,我得到“找不到符号- 方法keySet()“错误。我怎样才能解决这个问题?谢谢!相关代码如下。

0 投票
1 回答
146 浏览

java - 方法不适用于大型数据集

我试图在包含每个 Marvel 角色和他们所读过的每一本书的数据集中找到最核心的角色。我在下面编写的代码适用于我们自己创建的一个小测试文件,以更快地测试该方法,但是当我在 Marvel 文件上运行代码时,代码从一开始就中断了。我在整个代码中放置了打印语句以查找它停止工作的位置,我认为这与迭代这么多字符有关,但它从一开始就无法正常工作。在第一个 while() 循环中,我将 startVertex 添加到组中,并在添加 startVertex 之后立即编写了 System.out.println(group) 语句,当我运行测试时,打印语句给出“[]”(我'很确定意味着该组是'

编辑:这是文件的链接。大文件必须是原始格式,因为 github 无法打开它。它们的格式完全相同,并且两个文件都从 tsv 文件正确解析为多重图。

Large file: https://raw.github.com/EECE-210/2013-L1A1/master/mp5/labeled_edges.tsv?token=5408881__eyJzY29wZSI6IlJhd0Jsb2I6RUVDRS0yMTAvMjAxMy1MMUExL21hc3Rlci9tcDUvbGFiZWxlZF9lZGdlcy50c3YiLCJleHBpcmVzIjoxMzg2NzAyNDczfQ%3D%3D--acf1694845215e7a40aca1d6c456769cd825ebcf

小文件: https ://github.com/EECE-210/2013-L1A1/blob/master/mp5/testTSVfile.tsv

0 投票
4 回答
3881 浏览

java - 如何列出打印出当前存储在我的 HashMap 中的所有键,将人们映射到他们的地址

如何列出打印出当前存储在我的 HashMap 中的所有键,将人们映射到他们的地址。

这是我迄今为止尝试过的,并且知道我需要使用 keySet 方法,但不确定如何应用它。

0 投票
4 回答
1913 浏览

java - 为什么 Java HashMap get(key) 在使用相同 HashMap 的 Iterator 读取键时比使用 Set 的 Iterator 读取键时工作得更快?

对于 HashMap<Integer,Integer>,在插入 10000000 个唯一随机值后。我使用 hashmap 的 keySet() 执行 get(),如下面的代码片段所示:

运行上面的代码,我得到:225 ms

现在,如果我将上面的代码更改为使用集合,例如以下代码段:

运行此代码后,我得到:414 ms

为什么会有这样的性能差异?

PS:我使用了以下 JVM 参数:

0 投票
1 回答
1653 浏览

java - 为什么 map.keyset() 返回集合视图但 map.values() 返回 Java 中的集合?

这个问题更多的是关于 Java 开发人员的设计实现。我想知道(如果有任何我想不出的重要原因)为什么Keyset()返回 set-view 但values()返回Collection-view. 为什么不Values()ValueSetwith的形式返回set-view。如果需要,我可以强制设置,但为什么选择它的方式。

也许这有助于决定在构建我们的自定义数据结构时使用哪些数据结构。

0 投票
1 回答
312 浏览

java - HashMap 作为字符串的 ArrayList

首先这是一项任务,所以我更多的是寻求帮助,然后是编码答案(不想作弊!)。我的任务是创建一个程序来处理车站的火车/铁路网络。我坚持的部分添加了站点、它们的连接,并将这些连接作为字符串数组列表返回。我已经在下面包含了到目前为止的代码,以及作业的摘录(与我现在正在讨论的部分相关)。我整个周末都在努力解决这个问题,所以任何帮助都将不胜感激。

这只是我需要编辑的接口的实现,“MyNetwork”类。我只是觉得我一直在兜圈子,甚至可能没有右脚下车?

从任务中;

创建一个实现 Network 接口的 MyNetwork 类。

此类的 getConnections 方法应返回一个数组,该数组仅包含那些直接连接到 fromStation 参数的站。提示 1:您可以使用 HashMap 来执行此操作,键是字符串(表示站点),值是字符串的 ArrayLists(表示有直接连接的站点)。

提示 2:虽然 getConnections 方法返回一个字符串数组,但 HashMap 中的值最好是字符串的 ArrayLists

接口;

实施: