Den4xCode
@Den4xCode
Coder

Ошибка NoSuchElementException в Итераторе Java, почему она возникла (код в писании)?

package com.company.Labs.lab_5.My_Student_ex3;

import java.util.*;

public class Main {
    public static void main(String[] args) {

        //Задание 3 (пределал код из файла, так проще, смысл тот же)
        ArrayList students = new ArrayList();

        students.add(new Student(0, "Daniil", "ИСвГС", 182));
        students.add(new Student(0, "a", "ИСвГС", 182));
        students.add(new Student(0, "s", "ИСвГС", 180));
        students.add(new Student(0, "d", "ИСвГС", 170));
        students.add(new Student(0, "f", "ИСвГС", 183));
        students.add(new Student(0, "h", "ИСвГС", 172));
        students.add(new Student(0, "g", "ИСвГС", 192));
        students.add(new Student(0, "j", "ИСвГС", 152));
        students.add(new Student(0, "k", "ИСвГС", 182));
        students.add(new Student(0, "u", "ИСвГС", 171));
        students.add("String");

        print_iter(students);
    }

    public static void print_iter(List list) {
        Iterator iter = list.iterator();

        while (iter.hasNext()) {
            if (iter.next() instanceof Student) {
                Student student_object = (Student) iter.next();
                student_object.print();
            } else if (iter.next() instanceof String) {
               String str = (String)iter.next();
               int legth = str.length();
               System.out.println(legth);
            }

        }
    }
}

spoiler
5f5a3ea927fd8440006449.png


и еще заметил что данные он вывел не все, то есть не каждый объект ArrayList + строки в конце он вообще не вывел. Вообщем белиберда. Когда делал через цикл for все работало без ошибок и выводило именно каждый объект, в чем же проблема ?
  • Вопрос задан
  • 355 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Вы на одну проверку наличия следующего элемента, выполняете четыре перехода к следующим элементам.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы