问答详情
源自:4-11 学生选课---通过 Set 集合管理课程

向待选课程里添加重复的课程离散数学,选课时选了这门课,不应该是只显示一次吗?

http://img.mukewang.com/58bbe26e0001165f03200525.jpg

3:离散数学为什么会显示两次


提问者:会飞的小猪崽儿 2017-03-05 18:07

个回答

  • earlsun
    2017-07-14 11:56:45

    你添加了2次离散数学,是2个不同的对象额,如果你Course k0=new new Course("3","离散数学"),然后把这个放进List里两次,再用放到Set里面,再foreach Set就不会出现两次了 

  • qq_猫小懒_0
    2017-03-21 10:03:44

    同求解

  • 桥米
    2017-03-20 14:48:46

    顶,求大神来解答

  • 会飞的小猪崽儿
    2017-03-05 18:46:02

    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);

    }

    }


  • ziom
    2017-03-05 18:21:14

    代码贴出来看看