Попробуйте этот метод, он изменит список на месте:
public static <T> List<T> moveToTheTail(List<T> list, int startElem, int endElem) {
for (int i = startElem; i < endElem; i++)
list.add(list.remove(startElem));
return list;
}
Приведенный выше метод предполагает, что индексы действительны для списка. Используйте это так:
List<Integer> list1 = new LinkedList<Integer>();
list1.add(1);
list1.add(2);
list1.add(3);
list1.add(4);
list1 = moveToTheTail(list1, 0, 2);
System.out.println(list1);
Все элементы между индексом startElem и меньше, чем endElem, будут удалены из списка и добавлены в конец. А так как он использует дженерики, он работает для любого класса, который реализует интерфейс List
, содержащий элементы любого типа.