но вместо этого выводом было только последнее число, добавленное пользователем в массив.
studentMarks = new ArrayList<Integer>();
studentMarks.add(Integer.parseInt(newMark));
Ну, вы создаете новый ArrayList каждый раз, когда добавляете отметку.
Так что, конечно, у вас есть только одно число.
ArrayList должен быть создан один раз в конструкторе вашего класса, а затем вы просто добавляете новые значения Integer в ArrayList.
studentMarksSorted = new ArrayList<Integer>();
studentMarksSorted = studentMarks;
И нет необходимости делать это выше. Это не копирует данные из одного ArrayList в другой. Если вы хотите отслеживать исходные метки и отсортированные метки, то вам нужно вручную скопировать целые числа из одного ArrayList в другой.