Задумка состоит в том, чтобы после нахождения в цикле максимального элемента массива(с выводом на экран), в следующем цикле удалялся этот максимальный элемент, получились бы числа по убыванию. (в условии по возрастанию, да, поменять несложно) Не могу понять, почему он не удаляет максимальный элемент и всегда присваивает "l" первое значение максимума.
package com.javarush.task.task06.task0622;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
/*
Числа по возрастанию
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int a = Integer.parseInt(reader.readLine());
int b = Integer.parseInt(reader.readLine());
int c = Integer.parseInt(reader.readLine());
int d = Integer.parseInt(reader.readLine());
int e = Integer.parseInt(reader.readLine());
ArrayList<Integer> h = new ArrayList<>();
h.add(a); h.add(b); h.add(c); h.add(d); h.add(e);
int l = h.get(0);
for (int i = 0; i < h.size(); i++){ /*Нахожу наибольшее*/
if (l < h.get(i)){
l = h.get(i);
}
}
System.out.println(l);
for (int i1 = 0; i1 < h.size(); i1++){/*С помощью метода .remove() прошу удалить элемент массива, подобный максимальному, т.е. максимальное число */
if (h.get(i1) == l){ /*Подписал i1, чтобы легче было видно, какой цикл что делает*/
h.remove(i1);
}
}
for (int i = 0; i < h.size(); i++){
if (l < h.get(i)){
l = h.get(i);
}
}
System.out.println(l);
for (int i1 = 0; i1 < h.size(); i1++){
if (h.get(i1) == l){
h.remove(i1);
}
}
for (int i = 0; i < h.size(); i++){
if (l < h.get(i)){
l = h.get(i);
}
}
System.out.println(l);
for (int i1 = 0; i1 < h.size(); i1++){
if (h.get(i1) == l){
h.remove(i1);
}
}
for (int i = 0; i < h.size(); i++){
if (l < h.get(i)){
l = h.get(i);
}
}
System.out.println(l);
for (int i1 = 0; i1 < h.size(); i1++){
if (h.get(i1) == l){
h.remove(i1);
}
}
for (int i = 0; i < h.size(); i++){
if (l < h.get(i)){
l = h.get(i);
}
}
System.out.println(l);
}
}