Youngkos
2017-09-06 23:25
public void creatStudentAndSelectCourse(){
//创建一个学生对象
Student stu1 = new Student("1","小明");
System.out.println("欢迎:"+stu1.name+"选课!");
Scanner input = new Scanner(System.in);
for(int i = 0 ; i<3 ; i++){
System.out.println("请输入课程ID");
String courseID = input.next();
for(Course c : coursesToSelect){
if(c.id.equals(courseID)){
stu1.courses.add(c);
/**
* Set中,添加某种对象,无论添加多少次
* 最终只会保留一个该对象(的引用)
* 并且,保留的是第一次添加的那一个
*/
}
}
}
System.out.println("共选择了:"+stu1.courses.size()+"门课程");
//打印输出学生所选的课程
for(Course c : stu1.courses){
System.out.println("选择了课程"+c.id+":"+c.name);
}
}
/*
* */
public void testSetContains(){
//t提示输入课程名称
System.out.println("请输入学生已选的课程名称");
String name = console.next();
//创建一个课程对象,ID和名称,并判断备选课程中是否包含课程
Course course2 = new Course();
course2.name= name;
System.out.println("取得课程:"+course2.name);
System.out.println("备选课程中是否包含此课程"+student.courses.contains(course2));
}
public static void main(String[] args) {
SetTest st = new SetTest();
st.testAdd();
st.testForEach();
// st.testListContains();
// st.testForEach();
st.creatStudentAndSelectCourse();
st.testSetContains();
}执行结果
有如下课程待选(通过For each来遍历):
课程:2:C语言
课程:1:数据结构
课程:5:高等数学
课程:6:大学英语
课程:3:离散数学
课程:4:汇编语言
欢迎:小明选课!
请输入课程ID
2
请输入课程ID
5
请输入课程ID
6
共选择了:3门课程
选择了课程5:高等数学
选择了课程6:大学英语
选择了课程2:C语言
请输入学生已选的课程名称
高等数学
取得课程:高等数学
Exception in thread "main" java.lang.NullPointerException
at com.collection_map_demon.SetTest.testSetContains(SetTest.java:90)
at com.collection_map_demon.SetTest.main(SetTest.java:103)
第三行的第一个单词去掉,就没问题
public void testSetContains(Student student)
已自己找到问题。第一个方法里还用的是stu1,没有传信息去类属性student里。
Java入门第三季
409776 学习 · 4546 问题
相似问题