import java.io.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader rd = new BufferedReader(new InputStreamReader(System.in));
ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < 5; i++)
{
list.add(rd.readLine());
}
for (int i = 0; i < 13; i++)
{
list.add(0, list.get(list.size()-1));
list.remove(list.size()-1);
}
for (int i = 0; i < 5; i++)
{
System.out.println(list.get(i));
}
}
}
Для начала как я сделал самостоятельно:
for (int i = 0; i < 13; i++)
{
list.add(0, list.get(4));
list.remove(list.remove(4));
}
Не понимаю, в чем проблема этого кода. Берем последний элемент массива, вставляем в начало, удаляем последний элемент, но судя по результатам компиляции это совсем не так.
В ходе экспериментов над кодом оставил просто вот так:
for (int i = 0; i < 13; i++)
{
list.add(0, list.get(4));
}
Вывод этого кода аналогичен правильному, который я привел в самом начале.
Объясните мне пожалуйста, чем эти три варианта отличаются?package com.javarush.task.task07.task0711;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
/*
Удалить и вставить
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader rd = new BufferedReader(new InputStreamReader(System.in));
ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < 5; i++)
{
list.add(rd.readLine());
}
for (int i = 0; i < 14; i++)
{
list.add(0, list.get(4));
}
for (int i = 0; i < 5; i++)
{
System.out.println(list.get(i));
}
}
}