嗨,我有一个LinkedHashMap(称为信息),其中包含名称/年龄(字符串/整数)对。我想找出,如果我输入键,如何获得键/值的位置。例如,如果我的LinkedHashMap看起来像这样{bob
= 12,jeremy = 42,carly =
21}并且我要搜索jeremy,它应该返回1作为其位置1。我希望我可以使用诸如info.getIndex这样的东西(“杰里米”)
HashMap
通常,的实现是无序的Iteration
。
LinkedHashMap
是 predictablely
订购Iteration
(插入顺序),但不公开的List
接口和LinkedList
(这是镜子按键插入顺序)不跟踪指数本身无论是位置,这是非常的高效的找到索引为好。在LinkedHashMap
不暴露所述参考内部LinkedList
任一。
实际的 “链接列表” 行为是特定于实现的。有些人可能实际上使用了
LinkedList
许多实例,而这些实例只是
Entry
跟踪上一个和下一个,Entry
并将其用作其实现。在不查看源代码的情况下不要承担任何责任。
在KeySet
包含该键不保证顺序以及由于用于继承的后备数据结构放置的散列算法HashMap
。所以你不能使用它。
做到这一点的唯一方法,而无需编写您自己的实现,就是Iterator
使用镜像来遍历,LinkedList
并保留您的位置,这对于大数据集将是非常低效的。
解
这听起来像是您想要的 原始插入顺序索引位置
,您将不得不KeySet
像中那样镜像键ArrayList
,使其与的更新保持同步,HashMap
并使用它来查找位置。创建的子类HashMap
,比如说IndexedHashMap
并在ArrayList
内部添加一个.getKeyIndex(<K> key)
,然后添加一个委派给内部的类ArrayList
.indexOf()
,可能是解决此问题的最佳方法。
这是什么LinkedHashMap
,但使用而不是进行LinkedList
镜像。KeySet``ArrayList
问题内容: 我有 我想按 位置 获得 职位, 而不是关键 职位 。 我不想使用迭代。 还有其他方法可以基于索引获取Value吗? 问题答案: 您无法获得基于索引的值,只是那样行不通。一种解决方法是根据您的值创建一个新列表,然后根据索引获取值。
问题内容: 这是Firebase的后续问题-构建数据库的正确方法 我具有以下数据库结构: 我想查询歌手参考,看看歌手是否已在数据库中,以及歌手是否在数据库中,请获取歌手键(在上面的示例中为 -KKMkpA22PeoHtBAPyKm )。 我尝试了这个: 但是“ snapshot.key”只给了我“艺术家”的父密钥。 如何获得所需的钥匙? 问题答案: 在if条件下,您需要获取allKeys才能获取“
问题内容: 我正在struts上从事Web服务。现在我想要json对象使用其键值。然后,我必须发布类似数组的内容作为响应。我不知道如何在Struts中做到这一点。我知道如何在Servlet中执行此操作。因此,我使用的是我尝试过的以下代码,但我认为Struts中的代码有所不同。 因此,如何在Struts中做到这一点。还请告诉我如何解析json数组作为响应。 问题答案: 使用JSON无需将JSON发送
问题内容: 我在我的socket.io聊天应用程序的Redis存储中存储了用户名/ SocketID对。 当用户断开连接时,我需要从Redis存储中删除用户名/ socketID对。我已经看到了如何从键中获取值,但从未从值中获取键。可能吗?或无论哪种方式,我怎么能只从值中删除键/值对。这是我的代码 用于在连接上添加存储 对于断开连接,客户端将不知道何时断开连接,可能是由于Internet连接断开而
问题内容: 我正在返回一个json,如下所示 我正在尝试获取每个元素的键和值: 我正在戒备。为什么?我尝试过,我尝试循环但没有成功。 问题答案: 检查这个jsfiddle 从 jQuery 3.0开始 ,不推荐使用$ .parseJSON。要解析JSON字符串,请改用本机JSON.parse方法。 来源:http://api.jquery.com/jquery.parsejson/
有2个LinkedHashMaps。我必须检查两个LinkedHashMaps是否有相同的密钥。 例如 Map1包含{A-A、B-B、C-C} 地图 2 包含 {A-a, B-r, C-c, Z-z} 所以这里的第三个LinkedHashMap应该包含{Z-z},因为它包含额外的键和 {B-r}应该在修改时打印出来