为了账号安全,请及时绑定邮箱和手机立即绑定

练习哈希集 ,不能循环输出,求指点

练习哈希集 ,不能循环输出,求指点

qq_啊花橘子粥_0 2016-04-13 23:06:22
public class Course { int id; String name; public Course(int id,String name){ this.id=id; this.name=name; } }import java.util.HashSet;import java.util.Set;public class SetTest { public Set settest; public void SetTest(){ settest=new HashSet(); } /** * 添加课程信息 */ public void testAdd(){ Course cu1=new Course(0,"离散数学"); settest.add(cu1); Course cu2=new Course(1,"数据结构"); settest.add(cu2); Course cu3=new Course(2,"近代史"); settest.add(cu3); Course cu4=new Course(3,"数据库"); settest.add(cu4); Course cu5=new Course(5,"大学英语"); settest.add(cu5); } /** * 用for each方法循环遍历输出课程信息 */ public void testForEach(){ System.out.println("有如下待选课程:"); //判断是否为空 while(settest.isEmpty()){ for(Object ob:settest){ Course cu=(Course) ob; System.out.println(cu.id+":"+cu.name); } } } public static void main(String[] args) { SetTest set=new SetTest(); set.testAdd(); set.testForEach(); }}运行结果如下:Exception in thread "main" java.lang.NullPointerException at collection.SetTest.testAdd(SetTest.java:16) at collection.SetTest.main(SetTest.java:45)
查看完整描述

1 回答

已采纳
?
Its_forever

TA贡献361条经验 获得超328个赞

public void SetTest(){
    settest=new HashSet();
}  
改成
public SetTest() {
    settest = new HashSet();
}
不然类加载的时候找不到无参构造,就不能new HashSet();就会报空指针。


查看完整回答
1 反对 回复 2016-04-13
  • 1 回答
  • 0 关注
  • 1318 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信