I'm a noob in java and right now I'm learning about generics. This code should delete any integer larger than five. I typed [10, 11, 12, 1], in theory, I should only get [3, 4, 6, 1]. But I'm getting [3, 4, 6, 11, 1], I don't understand why..?
public static void main(String args[]) throws IOException{
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    ArrayList<Integer> list = new ArrayList<Integer>();
    list.add(3);
    list.add(4);
    list.add(56);
    list.add(6);
    for (int i = 0; i < 4; i++){
        String s = reader.readLine();
        list.add(Integer.parseInt(s));
    }
    for (int i = 0; i < list.size(); i++){
        if (list.get(i) > 5)
            list.remove(i);
        //else
            //i++;
    }
    System.out.println(list);
}
10 11 12 1
[3, 4, 6, 11, 1]
 
     
     
     
    