1)Недогоняю почему программа ругается на java.util.NoSuchElementException
по сути метод должен вернуть заполненный arraylist
2)Если свапнуть строки:
ArrayList<Integer> array = new ArrayList<>(); // без определения размера arraylist
со строками :
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int v = Integer.parseInt(reader.readLine());
и в цикле for указать просто v, а не размер то все компилируется корректно
Почему я не хочу делать второй вариант? потому что непонятно сколько будет разрастаться arraylist и хотел сразу определить его размер (Знаю занудно и бессмысленно в текущей ситуации)
Вопрос 1: как так получается что возвращается пустой arraylist?
Вопрос 2: Как сделать так, чтобы 1 вариант работал ?
Текст ошибки:
Exception in thread "main" java.util.NoSuchElementException
at java.util.ArrayList$Itr.next(ArrayList.java:862)
at java.util.Collections.max(Collections.java:671)
at com.javarush.task.task08.task0822.Solution.getMinimum(Solution.java:22)
at com.javarush.task.task08.task0822.Solution.main(Solution.java:17)package com.javarush.task.task08.task0822;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/*
Минимальное из N чисел
*/
public class Solution {
public static void main(String[] args) throws Exception {
List<Integer> integerList = getIntegerList();
System.out.println(getMinimum(integerList));
}
public static int getMinimum(List<Integer> array) {
return Collections.min(array);
}
public static List<Integer> getIntegerList() throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int v = Integer.parseInt(reader.readLine());
ArrayList<Integer> array = new ArrayList<>(v);
for (int i = 0; i < array.size(); i++) {
int k = Integer.parseInt(reader.readLine());
array.add(i, k);
}
return array;
}
}