moeC 2017-01-13 07:41 采纳率: 100%
浏览 2802
已采纳

HashMap输出空指针错误的问题

 import java.util.*;

public class Map集合 {
    public static void main(String[] args) {


        HashMap hm = new HashMap(); // 创建一个没有指定类型的Map集合
        Student s1 = new Student("广平", "男");
        Student s2 = new Student("庆阳", "男");
        // Student s3=new Student("心怡","女");
        hm.put("1", s1);
        hm.put("2", s2);
        hm.put("3", (new Student("心怡", "女")));
        hm.put("4", "年龄18");
        hm.put("5", 50);
        // 查找学生编号是001的学生
        // 因为hm.get("001")反回的是Object所以加上强转
        Student s = (Student) hm.get("001");
        System.out.println(s.toString());
        System.out.println("放入不同数据类型的hm集合的元素:" );
        System.out.println(hm);

    }
}

class Student {
    String name;
    String sex;

    public Student(String n, String s) {
        name = n;
        sex = s;
    }

    public String toString() {
        return ("姓名:" + name + " " + "性别:" + sex + " ");
    }

}

上述代码为什么会报空指针错误?但是我把几个put方法改成下述样子就可以:

        hm.put("001", s1);
        hm.put("002", s2);
        hm.put("003", (new Student("心怡", "女")));
        hm.put("004", "年龄18");
        hm.put("005", 50);
  • 写回答

3条回答

  • 迷茫猿小明 2017-01-13 07:51
    关注

    Student s = (Student) hm.get("001");这句问题吧,put进去的没有key是"001"的内容,都是“1”“2”...

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 一道python难题2
  • ¥15 一道python难题
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备