从存储在地图中的数组中获取值

时间:2014-07-12 07:49:24

标签: java arrays hashmap

我有一个带整数键的映射和字符串数组的相应值。我想从地图中获取一个数组中的值,并且我有一点时间这样做。我的搜索没有产生任何其他有用的东西,除了建议将其包裹起来之外'而且我真的不确定这意味着什么!这是一个例子:

Map myTasks = new HashMap();

myTasks.put(1, new String[] {"cake"});
myTasks.put(15, new String[] {"bake"});

String myString = myTasks.get(1)[0];  // This doesn't work.

所以我发现myTasks.get(1)返回一个对象。如何从该对象中获取字符串值?

谢谢!

3 个答案:

答案 0 :(得分:2)

你也可以使用Generics:

public static void main(String[] args) {
    Map<Integer, String[]> myTasks = new HashMap<Integer, String[]>();

    myTasks.put(1, new String[] {"cake"});
    myTasks.put(15, new String[] {"bake"});

    String myString = myTasks.get(1)[0];
    System.out.println(myString);
}

答案 1 :(得分:1)

代码中的问题是,您正试图直接将对象作为数组访问。

试试这个 -

Map myTasks = new HashMap();

myTasks.put(1, new String[] {"cake"});
myTasks.put(15, new String[] {"bake"});

String[] myString = (String[]) myTasks.get(1);
System.out.println(myString[0]);

您所要做的就是对象进行类型转换。

最佳做法是使用 -

Map<Integer, String[]> myTasks = new HashMap<Integer, String[]>();

而不是Map myTasks = new HashMap();,而不需要进行类型转换。

答案 2 :(得分:1)

添加通用类型:

Map<Integer, String[]> myTasks = new HashMap<Integer, String[]>();