Уже запутался, я вообще в верном направлений думаю? В какой части кода ошибка?
Исправил:
public class Solution {
public static void main(String[] args) throws Exception {
ArrayList<Integer> numbers = new ArrayList<>();
ArrayList<Integer> list1 = new ArrayList<>();
ArrayList<Integer> list2 = new ArrayList<>();
ArrayList<Integer> list3 = new ArrayList<>();
Scanner scanner = new Scanner(System.in);
for(int i = 0; i < 20; i++)
numbers.add(scanner.nextInt());
for (int i = 0; i < numbers.size(); i++){
Integer x = numbers.get(i);
if(x % 3 == 0 && x % 2 == 0){
list1.add(x);
list2.add(x);
}else if(x % 3 == 0 && x % 2 != 0){
list1.add(x);
}else if(x % 2 == 0 && x % 3 != 0){
list2.add(x);
}
else list3.add(x);
printList(list1);
printList(list2);
printList(list3);
}
}
public static void printList(List<Integer> list) {
for(Integer x : list)
System.out.println(x);
}
}
Валидацию проходит, единственный пункт который не проходит: "Программа должна вывести три дополнительных списка, используя метод printList." ,
Вроде выводит все 3 списка, проверил.
package com.javarush.task.task07.task0713;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/*
Играем в Jолушку
*/
public class Solution {
public static void main(String[] args) throws Exception {
ArrayList<Integer> numbers = new ArrayList<>();
ArrayList<Integer> list1 = new ArrayList<>();
ArrayList<Integer> list2 = new ArrayList<>();
ArrayList<Integer> list3 = new ArrayList<>();
Scanner scanner = new Scanner(System.in);
for(int i = 0; i < 20; i++)
numbers.add(scanner.nextInt());
for (int i = 0; i < numbers.size(); i++){
Integer x = numbers.get(i);
if(x % 3 == 0 && x % 2 == 0){
list1.add(x);
list2.add(x);
}else if(x % 3 == 0 && x % 2 != 0){
list2.add(x);
}else if(x % 2 == 0 && x % 3 != 0){
list1.add(x);
}
else list3.add(x);
printList(list1);
printList(list2);
printList(list3);
}
}
public static void printList(List<Integer> list) {
for(Integer x : list)
System.out.println(x);
}
}