【问题标题】:How do I grab an index from an array in a HashMap?如何从 HashMap 中的数组中获取索引?
【发布时间】:2011-06-02 15:32:58
【问题描述】:

我有一个HashMap<Object, String[]> 我只想从String[] 中获取0 索引位置。我该怎么做?

我可以这样做吗? mMap.get(position)[0]?

【问题讨论】:

  • 简单地尝试这个问题在哪里?

标签: java arrays collections


【解决方案1】:

是的,只要position 是地图中的一个键,您就可以按照您的指示进行操作。

【讨论】:

  • +1,用于理解问题并提供正确的回答,是的,只要position 是密钥,它就有效。
【解决方案2】:

HashMap 没有0index,也没有String[]

你不能按照你的要求去做,因为它没有意义。

我可以这样做吗? mmap.get(位置)[0]?

你可以。你试过这个看看它是否有效?注意:如果 map.get() 返回 null 会失败

【讨论】:

  • 我是说我想在 HashMap 中的任何位置获取 String[] 的 0 索引位置..
  • 您可以调用变量“位置”,但 HashMap 没有位置,它有键和值。否则,您应该能够通过尝试回答自己的问题。
【解决方案3】:

地图不是数组。它是映射到项目的键字典。所以 Map 部分没有有序索引,有一个查找键。这意味着地图没有“下一个”项目。

如果您在地图中存储了 String[],那么您可以像这样获取 String 数组的第一个元素:

String first = ((String[])mMap.get(lookupKey))[0];

由于您使用的是泛型,因此您的编译器将不需要强制转换,从而简化答案

String first = mMap.get(lookupKey)[0];

请注意,这不是使用位置来访问存储在 Map 中的项目,而是使用查找键。此外,将返回的 Object 转换为 String[](因为我们之前在 map 中存储了 String[]),然后对第一个 ('0') 元素进行解引用。

【讨论】:

  • @mre,取决于 Java 的版本。 Pre-generics,是的,需要演员。但是,张贴者刚刚编辑了问题以包括现在具有泛型的地图类型。或者如果他没有编辑它,我需要更多的咖啡,因为我错过了。
  • 不,你的咖啡水平很好,OP在编辑窗口中澄清了它。 ;-)
【解决方案4】:

这是一个小演示程序,可以满足您的要求。

import java.util.Map;
import java.util.HashMap;

public class FirstElementInHashMap {

    public static void main(String[] args) {
        Map<Object,String[]> mMap = new HashMap<Object,String[]>();
        mMap.put("myKeyA", new String[] { "myValue1", "myValue2", "myValue3" });
        mMap.put("myKeyB", new String[] { "myValue4", "myValue5", "myValue6" });
        mMap.put("myKeyC", new String[] { "myValue7", "myValue8", "myValue9" });

        Object position = "myKeyB";
        String[] strings = mMap.get(position);

        // make sure position exists in the Map and contains a non-empty array
        // so we don't throw an NullPointerException
        String firstStringInArray = null;
        if (strings != null && strings.length > 0) {
            firstStringInArray = strings[0];
        }
        System.out.println(firstStringInArray);
    }
}

上述程序的输出为:

myValue4

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-30
    • 2020-10-25
    • 2019-01-06
    • 2011-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-23
    相关资源
    最近更新 更多