在类中创建一个hashmap?

时间:2014-01-26 07:29:35

标签: java class hashmap

我想在类中创建一个Hashmap。例如,我有一个Java类,看起来像这样:

public class test{
  public static class testClass{
    HashMap<String, Integer> data;
    testClass left;
    testClass right;

    testClass(){
      left = null;
      right = null;
      data.put("", -1); // Exception here 
    }
  }
  public static void main(String []args){
    testClass database = new testClass(); //Throws an exception here also
  }
}

正如您从上面的代码中看到的那样,在我尝试创建类并尝试初始化hashmap时会抛出异常。但是,从我看到的所有示例中,我注意到您需要使用new关键字为HashMap创建内存。结果,我想知道,这可能吗?如果是这样,有没有办法解决这些异常?如果有人能帮助我,这将是伟大的。谢谢!

2 个答案:

答案 0 :(得分:1)

您忘记初始化HashMap

HashMap<String, Integer> data = new HashMap<String, Integer>();

除此之外,你的代码很乱并且有很多问题:

  1. 错误的命名惯例。
  2. 创建实例的方法不正确。
  3. 你的课没有明显的目的。
  4. 不鼓励使用名称而不是类型放置数组括号。
  5. 如果您想了解如何改进所有这些内容,请阅读Java tutorial

答案 1 :(得分:1)

您尚未创建HashMap的实例,您刚刚声明了HashMap的变量类型,您需要初始化HashMap才能使用它,例如

HashMap<String, Integer> data = new HashMap<String, Integer>();

您可以在同一行中声明并初始化HashMap,或者如果您有构造函数,则可以在构造函数中初始化它。

更正错误类的版本。

public class test{
  public static class testClass{
    HashMap<String, Integer> data;
    testClass left;
    testClass right;

    testClass(){
      left = null;
      right = null;
      data = new HasMap<String, Integer>();
      data.put("", -1);
    }
  }
  public static void main(String []args){
    testClass database = new testClass();
  }
}