Хотя ответ YCF_L, пожалуй, самый элегантный, я чувствую, что для оригинального плаката может пригодиться более простое для понимания решение, вот один из них
Сначала создайте список того же размера, что и список, который выхотите отсортировать и инициализировать все элементы в null:
List<Student> sortedList = new ArrayList<>(Collections.nCopies(list.size(), null));
Затем просмотрите список студентов и добавьте их с правильным индексом
С помощью простого цикла for
:
int index;
for(Student student : list) {
index = list1.indexOf(student.getName());
sortedList.set(index, student);
}
Или используя forEach
:
list.forEach(student -> {
int index = list1.indexOf(student.getName());
sortedList.set(index, student);
});
Соответствующий однострочный:
list.forEach(s -> sortedList.set(list1.indexOf(s.getName()), s));