Can you optimize this code? I am trying to run it but it shows code took too long to run. Working fine in local machine.
package com.codegym.task.task07.task0713;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/*
Playing Javarella
*/
public class Solution {
public static void main(String[] args) throws Exception {
//write your code here
Scanner k = new Scanner(System.in);
ArrayList<Integer> mainList = new ArrayList<>( 20);
for (int i = 0; i < 20 ; i++) {
int n = k.nextInt();
mainList.add(n);
}
ArrayList<Integer> divBy3 = new ArrayList<>();
ArrayList<Integer> divBy2 = new ArrayList<>();
ArrayList<Integer> others = new ArrayList<>();
for (int i = 0; i < mainList.size() ; i++) {
int n = mainList.get(i);
if ((n % 3 ) == 0)
{
divBy3.add(n);
if ((n % 2) == 0)
divBy2.add(n);
}
else if ((n % 2) == 0)
{
divBy2.add(n);
if ((n % 3 ) == 0)
divBy3.add(n);
}
// if (((mainList.get(i) % 2) == 0) && ((mainList.get(i) % 3) == 0))
else
others.add(n);
}
printList(divBy3);
printList(divBy2);
printList(others);
}
public static void printList(List<Integer> list) {
//write your code here
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}