如何从哈希映射中读出数组?

时间:2010-12-13 11:57:53

标签: java arrays hashmap

我在理解如何读出放入哈希映射的数组时遇到问题。 (顺便说一句,我需要将不同的数据类型放入哈希映射,单个值以及数组中,这就是我使用通用的“对象”类型)。

示例代码:

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

我在运行时遇到错误......

我希望有人能给我一个提示。我找不到我的错误。

非常感谢。 斯特芬

2 个答案:

答案 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

鉴于该代码有效,请发布一个简短但完整的程序失败 - 或至少告诉我们您实际上遇到的错误。