hashmap-Java中遇到的一个异常Exception in thread "main" java.lang.NullPointerException

问题描述

Java中遇到的一个异常Exception in thread "main" java.lang.NullPointerException
import java.util.*;

public class NewHashTest
{
public static void main(String[] args)
{
HashMap hash = new HashMap();
Emp emp1 = new Emp(""laoda""111""123f);
Emp emp2 = new Emp(""laoer""222""234f);
Emp emp3 = new Emp(""laosan""333""5466f);

    hash.put(111emp1);    hash.put(222emp2);    hash.put(333emp3);    if(hash.containsKey(111))    {        Emp em = (Emp)hash.get(111);        em.info();//可以正常显示    }    Iterator iter = hash.keySet().iterator();    while(iter.hasNext())    {        String key = iter.next().toString();        Emp ems = (Emp)hash.get(key);        ems.info();//这里会报错    }}

}

class Emp
{
String name;
String number;
float slary;

public void info(){    System.out.println(""名字叫:""+name);    System.out.println(""编号为:""+number);    System.out.println(""薪水是:""+slary);}public Emp(String nameString numberfloat slary){    this.name = name;    this.number = number;    this.slary = slary;}

}

会在ems.info();一行报一个Exception in thread ""main"" java.lang.NullPointerException的错误,是不是传入的KEY类型有问题,还是什么别的问题,求指点。

解决方案

map设置的键值对的时候键 hash.put(111emp1) 111为int类型,而遍历的时候确
String key = iter.next().toString();
使用String类型作为查找的key,当然就会是null了。

可将111 222 改成字符

时间: 2024-10-02 00:15:14

hashmap-Java中遇到的一个异常Exception in thread "main" java.lang.NullPointerException的相关文章

如何在java中实现读取一个txt文档中的随机一行

问题描述 如何在java中实现读取一个txt文档中的随机一行 如题,如何在java中实现读取一个txt文档中的随机一行? 主要就是怎么随机读取 解决方案 根据楼上的说法,来总结一下吧,总体来说,就是将文件全部都读取出来,每一行存储到一个数组或集合中,然后再通过产生随机数,来对这个数组或是 集合进行随机的访问.这样一来就解决了 解决方案二: 文本文件只能顺序读,不能随机读.你的需求只能是读取文本文件每一行到一个arraylist,然后得到下标范围,产生一个随机数,取那一行 解决方案三: http:

重写-关于java中compare的一个问题

问题描述 关于java中compare的一个问题 我在看视频,这边重写了compare接口,compare接口里的方法既然都是抽象的,那 compareto 在这里不是毛用都没.... 解决方案 可能java的字符串类型默认实现了compareTo方法,就像equal一样. 解决方案二: 一个是实现接口 Comparable的compareTo()方法:一个是String类中compareTo()方法....肯定不一样啊 建议看api文档 解决方案三: 你重写的的是接口Comparable中的c

java中如何满足一个条件使按钮失效

问题描述 java中如何满足一个条件使按钮失效 我想达到这样的效果,比如点击了一个下拉列表,选中了特定的条件之后,会使下面的某一个按钮失效.该怎么做呢? 解决方案 JS或者JQuery添加onchange事件,每次下拉列表选中值改变的时候触发,判定一下如果选中了某个条件,然后用JS或JQuery给按钮添加样式,使其只读. $('#mySelect').change(function(){ var p1=$(this).children('option:selected').val();//这就是

java 日历中用户创建一个跨天的事件提醒,那么我的java日历应当如何去记录并打印出这样的事件呢?

问题描述 java 日历中用户创建一个跨天的事件提醒,那么我的java日历应当如何去记录并打印出这样的事件呢? 一个班级假如有100个同学,现在我们按照学号随机选择连续学号的42名同学,这42名同学一排7人分为6排,然后按照他们这一年来参加活动的多少来给分,规定一个同学参加一次班级活动就给这位同学1分,参加一次团体表演(你可以认为参加团体表演的人都是按照学号顺序相邻的,比如从1到10号的同学,他们一块进行了一场团体表演,学号15-30的16位同学一块进行了一次团体表演等,这些人每人都能获得1分)

java中关于启动一个线程的问题

问题描述 java中关于启动一个线程的问题 start( )方法是不是只能用于启动可以线程,还有什么其他方面的用法吗 解决方案 start仅仅是运行线程的run方法而已 解决方案二: 你的意思是..想问start()这个方法在其他地方有没有同名的方法?还是想问,还有没有其他方法能启动线程? 解决方案三: java新建一个线程 解决方案四: Thread的start方法就是启动线程的,但是别的类的这个方法是什么作用就不一定了.

android/java中抓取一个词

问题描述 android/java中抓取一个词 在句子中找出一个词,比如用户输入了 "My friend is a cowboy".应用就能根据数组检测出 cowboy. String[] words = {"cowboy", "animal", "monster"}; 代码: String[] words = {"cowboy", "animal", "monster&quo

在java中定义了一个二维数组,这样做好像不对,输出时报错, 代码如下

问题描述 在java中定义了一个二维数组,这样做好像不对,输出时报错, 代码如下 我是想要定义一个二维数组,然后动态地给它赋值,应该怎么做不知道问题出在做么地方,请大神指导一下 ,代码如下: int[][] a = null; a[1] = new int[]{1,2,3}; System.out.println(a[1][1]); 解决方案 int[][] a = null; a = new int[5][];//第一维需要初始化 a[1] = new int[]{1,2,3};//这是第二维

方法-java+中怎样声明一个含有ArrayVolume的接口

问题描述 java+中怎样声明一个含有ArrayVolume的接口 java+中怎样声明一个含有ArrayVolume的接口,含有array(),和volume()两个抽象方法,请给个例子 解决方案 public interface IArrayVolulmn{ public void array(); public void volume(); } 解决方案二: public interface Some { void array(); void volume(); }

大神帮帮忙-java中如何获取一个文件的文件头信息

问题描述 java中如何获取一个文件的文件头信息 有没有一个方法获取一个文件的文件头.这个文件是a.exe,求教了! 解决方案 exe使用的是pe格式,参考:http://www.cnblogs.com/lzjsky/archive/2011/09/22/2184942.html 解决方案二: 所谓文件头,没有一个确切的概念,不同的文件类型,文件头的含义不同,长度不同. 如果你希望简单判断下文件类型,那么你只需要读取文件开头几个字节,这不算文件头,一般叫做文件特征. 比如exe,它开头两个字节应