public static void main(String[] args) throws Exception {
        ArrayList<String> list = new ArrayList<String>();


        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        for (int i = 0;i<10;i++){
            list.add(reader.readLine());
        }

        int min = list.get(0).length();


        for (int i = 1;i<10;i++){
            if (list.get(i).length()<list.get(i-1).length()){
                min=list.get(i).length();
            }
        }

        int max = list.get(0).length();

        for (int i = 1;i<10;i++){
            if (list.get(i).length()>list.get(i-1).length()){
                max=list.get(i).length();
            }
        }

        int maxposition=0;
        for(int i =0;i<10;i++){
            if (list.get(i).length()==max){
                maxposition=i;
                break;
            }
        }

        int minposition=0;
        for(int i =0;i<10;i++){
            if (list.get(i).length()==min){
                minposition=i;
                break;
            }
        }

        System.out.println("max = " + max + " min = " + min);
        System.out.println("maxposition = " + maxposition + " minposition = " + minposition);

        if(maxposition<minposition){
            System.out.println(list.get(maxposition));
        }else{
            System.out.println(list.get(minposition));
        }


    }
}
Помогите разобраться с проблемой: переменные max и min должны выводить максимальное и минимальное кол-во символов соответственно. Почему-то при тестировании, если максимальная или минимальная строка идет первой (с индексом 0), то она не учитывается, берутся значения только из следующих элементов массива.