Какая-то глупость.
Если запустить программу она работает нормально.
Но стоит запустить на проверку, зависает и пишет что бесконечный цикл.
Во всех циклах есть условия работы, т.е. цикл при любой возможности закончится.
Добавил в каждом цикл принудительный выход из цикла:
if(i>1000){break;}
и принудительное обнуление списков после работы.
В итоге программа на проверке заработала, но выдает странные ошибки
Ошибка: Объяви и сразу проинициализируй 4 переменных типа ArrayList<Integer> (список целых чисел). Первый список будет главным, а остальные - дополнительными.
Все 4 листа объявляются первыми строками в main и прекрасно работают в теле.
Ошибка: Считать 20 чисел с клавиатуры и добавить их в главный список.
Все считывается, это доказано тем что 2 последних требования выполняются и визуально вывод виден.
Ошибка: Добавить в третий дополнительный список все остальные числа из главного.
Опять таки списки объявляются в начале, и данные выводятся
Вообще в замешательстве... подскажите где ошибка?
package com.javarush.task.task07.task0713;
import java.util.ArrayList;
import java.util.Scanner;
/*
Играем в Jолушку
*/
public class Solution {
public static void main(String[] args) throws Exception {
//напишите тут ваш код
ArrayList<Integer> listMain = new ArrayList<Integer>();
ArrayList<Integer> listNa3 = new ArrayList<Integer>();
ArrayList<Integer> listNa2 = new ArrayList<Integer>();
ArrayList<Integer> listOst = new ArrayList<Integer>();
listMain=getInts(20);
int tmp;
for(int i=0; i<listMain.size(); i++){
if(i>1000){break;}
tmp = listMain.get(i);
if(tmp%3==0){listNa3.add(tmp);}
if(tmp%2==0){listNa2.add(tmp);}
if(tmp%3!=0 && tmp%2!=0){listOst.add(tmp);}
}
listMain=null;
printList(listNa3);
printList(listNa2);
printList(listOst);
listNa2=null;
listNa3=null;
listOst=null;
}
public static void printList(ArrayList<Integer> list) {
//напишите тут ваш код
for(int i=0; i<list.size(); i++){
System.out.println(list.get(i));
if(i>1000){break;}
}
list=null;
}
public static ArrayList<Integer> getInts(int count){
ArrayList<Integer> ints = new ArrayList<Integer>();
Scanner scan = new Scanner(System.in);
for(int i=0; i<count; i++){
ints.add(Integer.parseInt(scan.nextLine()));
if(i>1000){break;}
}
return ints;
}
}