Код из задачи
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<String>list1 = new ArrayList<String>();
int N = Integer.parseInt(reader.readLine());
int M = Integer.parseInt(reader.readLine());
for(int i=0; i<N; i++){
list1.add(reader.readLine());
}
for(int i=0; i<M; i++){
list1.add(list1.get(0));
list1.remove(0);
}
Объясните, что делает этот участок , а именно:for(int i=0; i<M; i++){
list1.add(list1.get(0));
list1.remove(0);
}
Он как бы добавляет элемент с нулевым индексом, а потом удаляет его ? Это решило задачу, но я не понимаю, каким образом этот участок выполняет условие задачи: Переставить M первых строк в конец списка.
Каким образом происходит переставление ??