Java 如何从HashMap中的数组中获取索引?

Java 如何从HashMap中的数组中获取索引?,java,arrays,collections,Java,Arrays,Collections,我有一个HashMap我只想从字符串[]中获取0索引位置。我该怎么做 我可以这样做吗mMap.get(position)[0]?HashMap没有0索引,也没有字符串[] 你不能按你的要求去做,因为这毫无意义 我可以这样做吗?mMap.get(位置)[0] 你可以。你试过这个了吗?注意:如果map.get()返回null,则它将失败。映射不是数组。这是一个映射到项目的键字典。因此,映射部分中没有有序索引,而是有一个查找键。这意味着地图没有“下一个”项目 如果在映射中存储了字符串[],则可以获得字

我有一个
HashMap
我只想从
字符串[]
中获取0索引位置。我该怎么做


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

HashMap
没有
0
索引,也没有
字符串[]

你不能按你的要求去做,因为这毫无意义

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


你可以。你试过这个了吗?注意:如果map.get()返回null,则它将失败。映射不是数组。这是一个映射到项目的键字典。因此,映射部分中没有有序索引,而是有一个查找键。这意味着地图没有“下一个”项目

如果在映射中存储了字符串[],则可以获得字符串数组的第一个元素,如下所示:

String first = ((String[])mMap.get(lookupKey))[0];
由于您使用的是泛型,因此编译器将使强制转换变得不必要,从而简化了问题的答案

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

请注意,这不是使用位置来访问存储在映射中的项,而是使用查找键。此外,还将返回的对象强制转换为字符串[](因为我们在前面的映射中存储了字符串[]),然后将第一个('0')元素解除限制。

是的,如果映射中的键是
位置
,则可以执行您指示的操作。

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

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);
    }
}

我是说我想在HashMap中的任何位置获取字符串[]的0索引位置。您可以调用变量“position”,但HashMap没有位置,它有键和值。否则,您应该可以通过尝试回答自己的问题。@mre,取决于Java的版本。前仿制药,是的,需要铸造。然而,海报只是编辑了这个问题,以包括现在具有泛型的地图类型。或者,如果他没有编辑,我需要更多的咖啡,因为我错过了。不,你的咖啡水平很好,OP在编辑窗口中澄清了它。;-)+1、为了理解问题并提供正确的回答,只要
位置是关键,它就是有效的。简单地尝试一下,问题出在哪里?
myValue4