Как получить элемент из коллекции при работе с iterator?

В коде пометил где хочу вызвать метод next() итератора, подскажите как нужно правильно обращаться - ибо не работает

package Lesson17_02_06.Home2;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;

public class Runner {

	public static void main(String[] args) {
		
		//мой динамический массив
		List <Integer> list1 = new ArrayList<Integer>();
		
		//поток ввода
		InputStream input = null;
		Scanner sc = null;
		
		try {
			input = new FileInputStream("src/Lesson17_02_06/Home2/itClass.txt");
			sc = new Scanner(input);
			
			Iterator it = list1.iterator();
			
			while(sc.hasNext()) {
				Integer n = sc.nextInt();
				list1.add(n);
			}
			
			int countPositiv = 0;
			int countNegative = 0;
			while(it.hasNext()) {
				// КАК ОБРАТИТЬСЯ к следующему элементу коллекции ?
                                // метод it.next() - возвращает тип Object 
				if(n < 0) {
					countNegative++; 
				}else {
					countPositiv++;
				}
			}
			System.out.println("Кол-во отрицательных = " + countNegative + ", кол-во положительных = " + countPositiv );
			
		} catch (FileNotFoundException e) {
			System.out.println("Ошибка в файле!");
		} catch (IOException e) {
			e.printStackTrace();
		}
		input(list1);
	}
	
	public static void input(List <Integer> list1) {
		System.out.println(list1);
	}
}
  • Вопрос задан
  • 77 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Во-первых, получайте параметризированный итератор, тогда будет возвращать не Object
Iterator<Integer> it = list1.iterator();

Во-вторых, вы изменяете коллекцию после того, как получили для неё итератор, это приведёт к выбросу исключения ConcurrentModificationException при попытке получить из итератора элемент.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
16 апр. 2024, в 06:30
30000 руб./за проект
16 апр. 2024, в 05:27
500 руб./за проект
16 апр. 2024, в 04:35
10 руб./в час