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

新手上路,请多包涵

我正在尝试使用 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
    }
}

是否有捷径可寻?

原文由 Derek 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 864
2 个回答

您可以通过调用 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>> 。总是最好根据接口而不是实现来声明类型。

原文由 Cameron Skinner 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果您真的只想要第 一个键的值,这是通用解决方案

Object firstKey = myHashMap.keySet().toArray()[0];
Object valueForFirstKey = myHashMap.get(firstKey);

原文由 dumonderic 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题