【问题标题】:Array of hashmap with one hashmap带有一个哈希图的哈希图数组
【发布时间】:2012-10-31 11:49:44
【问题描述】:

我正在做一个学校作业,我应该像这样制作一个哈希图数组:

HashMap<String, Person>[] mood = (HashMap<String, Person>[])  new HashMap<?, ?>[6];

我从一个文件中读取,它是这样的。问题是它给了 NullPointerException 我试图把心情变成心情[0]!在我的书中找不到任何关于 hashmap-array 如何工作的信息.. :( 会很高兴获得所有帮助 (:

Person p = new Person();
p.name = word[1];
p.age = word[2];
p.mood = word[3];

people.put(p.name, p);

 if (p.mood.equals("HAPPY")) {
 mood[0].put(p.mood, p); //NullPointerException 
 }

【问题讨论】:

  • 提示:数组的第一个元素的索引不是 1。

标签: java arrays nullpointerexception hashmap


【解决方案1】:

基本上,您确实初始化了一个心情数组,但它是用nulls 初始化的。因此,在您可以在心情[0](或任何其他索引)上调用任何方法之前,您需要在心情[0] 中放置一个非空对象。

【讨论】:

  • 我以前不知道,对不起。现在将修复它。不过谢谢!
【解决方案2】:

当你创建对象数组时,数组元素初始为空,所以在使用mood[0]之前,你需要用HashMap&lt;String, Person&gt;的实例填充它

【讨论】:

    猜你喜欢
    • 2014-12-10
    • 2020-07-19
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-18
    • 2013-03-21
    • 1970-01-01
    相关资源
    最近更新 更多