当前位置: 首页 > 面试题库 >

Java HashMap:如何通过索引获取键和值?

麻鹏鹍
2023-03-14
问题内容

我正在尝试使用HashMap将唯一字符串映射到字符串ArrayList,如下所示:

HashMap<String, ArrayList<String>>

基本上,我希望能够通过数字访问密钥,而不是使用密钥名称。我希望能够访问所述键的值,以对其进行迭代。我在想像这样的事情:

for(all keys in my hashmap) {
    for(int i=0; i < myhashmap.currentKey.getValue.size(); i++) {
        // do things with the hashmaps elements
    }
}

是否有捷径可寻?


问题答案:

您可以通过调用来遍历键,也可以通过调用来map.keySet()遍历项map.entrySet()。遍历条目可能会更快。

for (Map.Entry<String, List<String>> entry : map.entrySet()) {
    List<String> list = entry.getValue();
    // Do things with the list
}

如果要确保按插入键的顺序遍历键,请使用LinkedHashMap

顺便说一句,我建议将地图的声明类型更改为<String, List<String>>。始终最好根据接口而不是实现来声明类型。



 类似资料:
  • 问题内容: 可以说我有一个包含x个未知字符的字符串。我怎么能得到char nr。13或char nr。x-14? 问题答案: 首先,确保所需的数字是从开头或结尾开始的字符串 的有效索引 ,然后可以简单地使用数组下标表示法。用于获取字符串长度

  • 表的复合键是symbol和“datetime”(它只是一个时间戳)。这两列在dynamodb中都设置为字符串。 我收到的错误是:提供的键元素与模式不匹配

  • 问题内容: 我人数众多,并且我对前十个值及其每行的索引感兴趣。但是我没有找到一种体面的方式来操纵矩阵。 这是我当前的解决方案,主要思想是逐行处理它们: 这样做不会充分利用的优势。它更像是一种蛮力解决方案。 问题答案: 在这种情况下,我看不到格式的优点是什么。当然,所有非零值都收集在一个数组中,相应的列索引在中。但是它们处于不同长度的块中。这意味着它们不能并行或以数组步幅进行处理。 一种解决方案是将

  • 问题内容: 我从字符串定义一个新的gson对象: 此处的字符串示例:http : //api.soundrop.fm/spaces/XJTt3mXTOZpvgmOc 然后尝试返回一个值: 最后用: 但是我得到一个错误: 完整班:主班:http : //pastebin.com/v4LrZm6k 无线电班:http : //pastebin.com/2BWwb6eD 问题答案: 这是Java。字段根

  • 我知道如何计算出字符串中某个字符或数字的索引,但是有没有任何预定义的方法可以用来给我第n个位置的字符?所以在字符串“foo”中,如果我要求索引为0的字符,它会返回“f”。 注意——在上面的问题中,我所说的“字符”不是指字符数据类型,而是字符串中的字母或数字。这里重要的一点是,调用该方法时,我不会收到char,而是一个字符串(长度为1)。我知道substring()方法,但我想知道是否有更简洁的方法

  • 问题内容: 例如,我有: 然后,例如,我要通过对该对象进行 排序/反转。然后我想得到这样的东西: 现在,我想知道具有属性的对象的索引,以获取属性标记的值。 我该如何解决这个问题? 问题答案: 正如其他答案所暗示的那样,遍历数组可能是最好的方法。但是我会把它放在它自己的函数中,并使它更抽象一些: 这样,您不仅可以找到包含“ John”的一个,而且可以找到包含令牌“ 312312”的一个: 编辑: 未