会飞的小猪崽儿
2017-03-05 18:07
3:离散数学为什么会显示两次
你添加了2次离散数学,是2个不同的对象额,如果你Course k0=new new Course("3","离散数学"),然后把这个放进List里两次,再用放到Set里面,再foreach Set就不会出现两次了
同求解
顶,求大神来解答
public class SetTest {
public List<Course> coursesToSelect; //存储备选课程
public SetTest() {
coursesToSelect=new ArrayList<Course>();
}
public void testAdd(){
//创建一个课程对象
Course cr1=new Course("1","数据结构");
coursesToSelect.add(cr1);
System.out.println("添加了课程:"+cr1.id+":"+cr1.name);
Course cr2=new Course("2","C语言");
coursesToSelect.add(0,cr2); //将元素2放到元素1的位置上
System.out.println("添加了课程:"+cr2.id+":"+cr2.name);
//创建一个对象数组course
Course[]course1={new Course("3","离散数学"),new Course("4","JAVA语言")};
coursesToSelect.addAll(Arrays.asList(course1));
Course[]course2={new Course("3","离散数学"),new Course("5","操作系统"),new Course("6","计算机网络")};
coursesToSelect.addAll(2,Arrays.asList(course2));
}
public void testforEach(){
System.out.println("有如下课程(通过for each访问):");
for(Course cr:coursesToSelect){
System.out.println("课程"+cr.id+":"+cr.name);
}
}
public void testforEachSet(Student stu){
//打印输出,学生所选的课程!
System.out.println("共选择了"+stu.courses.size()+"门课程");
for(Course cr:stu.courses){
System.out.println(cr.id+":"+cr.name);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
SetTest st=new SetTest();
st.testAdd();
st.testforEach();
//创建一个学生对象
Student stu=new Student("101","小明");
System.out.println("欢迎学生"+stu.name+"来选课");
//创建一个Scanner对象
Scanner console=new Scanner(System.in);
for(int i=0;i<3;i++){
System.out.println("请输入课程ID");
String courseId=console.next();
for(Course cr:st.coursesToSelect){
if(cr.id.equals(courseId)){ //判断输入的课程id是否与备选课程匹配
stu.courses.add(cr); //将选择的课程添加到课表里
stu.courses.add(cr);
}
}
}
//调用打印学生选课的信息
st.testforEachSet(stu);
}
}
代码贴出来看看
Java入门第三季
409792 学习 · 4340 问题
相似问题