我在理解如何读出放入哈希映射的数组时遇到问题。 (顺便说一句,我需要将不同的数据类型放入哈希映射,单个值以及数组中,这就是我使用通用的“对象”类型)。
示例代码:
HashMap map = new HashMap();
map.put("two", new int[]{1,2});
int[] myArray = new int[2]:
myArray = (int[])map.get("two");
System.out.println("Array value "+myArray[0]);
System.out.println("Array value "+myArray[1]);
我在运行时遇到错误......
我希望有人能给我一个提示。我找不到我的错误。
非常感谢。 斯特芬
答案 0 :(得分:1)
问题在于这一行:
int[] myArray = new int[2]:
将其更改为
int[] myArray = new int[2];
除此之外,该代码段没有任何问题。
答案 1 :(得分:0)
该代码应该可以正常工作,但这一行除外:
int[] myArray = new int[2]:
使用冒号而不是分号,并毫无意义地创建一个新数组。鉴于你说你在运行时时遇到错误,我怀疑这不是问题 - 但很难说,因为你没有说出错误究竟是什么。
我还建议使用泛型而不是原始类型,即使值类型只是Object。这是一个简短但完整的程序,显示它正常工作:
import java.util.*;
public class Test {
public static void main(String[] args) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("two", new int[] { 1, 2 });
int[] myArray = (int[]) map.get("two");
System.out.println("Array value " + myArray[0]);
System.out.println("Array value " + myArray[1]);
}
}
输出:
Array value 1
Array value 2
鉴于该代码有效,请发布一个简短但完整的程序失败 - 或至少告诉我们您实际上遇到的错误。