我有一个带整数键的映射和字符串数组的相应值。我想从地图中获取一个数组中的值,并且我有一点时间这样做。我的搜索没有产生任何其他有用的东西,除了建议将其包裹起来之外'而且我真的不确定这意味着什么!这是一个例子:
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)返回一个对象。如何从该对象中获取字符串值?
谢谢!
答案 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[]>();