Вроде бы в IDE работает, вроде бы мануальные проверки проходит. Идея была такая: Составить лист, в нем найти минимальное значение. Это минимальное значение переставить в начало листа, поменяв значения местами. Например минимальное значение (6), тогда я меняю местами значения с индексами (0) и (6). Затем еще раз нахожу минимальное значение, но уже поиск идет по листу, начиная с индекса (1), а не ноль, при этом отсекаю значения листа, которые совпадают с минимальным.
import java.util.ArrayList;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        ArrayList<Integer> mylist = new ArrayList<Integer>();
        while (scanner.hasNextInt()) {
            int i = scanner.nextInt();
            mylist.add(i);
        }
        int min = mylist.get(0);
        int minIndex = 0;
        int indexTransfer = 0;
        for (int i = 0; i < mylist.size(); i++) {
            if (mylist.get(i) < min) {
                min = mylist.get(i);
                minIndex = i;
            }
        }
        indexTransfer = mylist.get(0);
        mylist.set(0, minIndex);
        mylist.set(minIndex, indexTransfer);

        int min1 = mylist.get(1);
        int minIndex1 = 0;

        for (int i = 1; i < mylist.size(); i++) {
                if ((mylist.get(i) < min1) && (mylist.get(i) > min)) {
                    min1 = mylist.get(i);
                    minIndex1 = i;
            }
        }
        System.out.println(min1);
        }
    }