为什么我使用iterator遍历,只输出了部分元素,而用foreach输出是正常的?

来源:4-11 学生选课---通过 Set 集合管理课程

魔铃咔咔

2017-05-12 13:19

    /**
     * 使用迭代器Iterator遍历输出list
     * @param args
     */
    public void testIterator(){
        //创建iterator对象
        Iterator<Course> it=coursesList.iterator();
        while(it.hasNext()){
            System.out.println("课程ID:"+it.next().getId()+"  课程名称:"+it.next().getName());
        }
    }

写回答 关注

2回答

  • 流失时光90
    2017-05-12 14:58:56

    public void testIterator(){

    //通过集合的iterator方法,取得迭代器的实例

    Iterator it=coursesToSelect.iterator();

    System.out.println("有如下课程待选(通过迭代器访问):");

    while(it.hasNext()){

    Course cr=(Course)it.next();

    System.out.println("课程:"+cr.id+":"+cr.name);

    }

    }

  • 慕粉1454142671
    2017-05-12 14:27:41

    it.next().getId() 和 it.next().getName() 分别进行两次获取


    应该用一个对象 例如course = it.next()

    system.out.printl(课程id" + course.getId() + ",课程名称" + course.getName());


    魔铃咔咔

    还真是这原因,可是为什么直接输出就只获取部分元素呢?啥原理?

    2017-05-12 15:32:09

    共 1 条回复 >

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题