Как перенести первый элемент arraylist в последнюю позицию?

Мой код перейдет к последнему arraylist:

if (listItem.get(listItem.size() - 1).SortNo > 0) { while (listItem.get(0).SortNo == 0) { DTO_NightClinic dt = listItem.get(0); listItem.remove(0); listItem.add(dt); } } 

Но общий listItem.remove(0); Он не работает. И первый элемент все еще существует на первой позиции arraylist.

 Collections.rotate(list, -1); 

Просто используйте rotate с -1 местом, и он будет делать то, что вы хотите

Входные данные:

 1, 2, 3, 4 

Вывод:

 2, 3, 4, 1 

Подробнее о Коллекции # rotate (java.util.List, int)

Возможно, Collections.rotate() представляется приемлемым решением, но для некоторых требуется расширенная задача … см. Источник Collections.roatate()

 public static void rotate(List<?> lst, int dist) { ............... reverse(sublist1); reverse(sublist2); reverse(list); } 

Он выполняет итерацию через все элементы списка и применяет метод Collections.reverse() поэтому он потребляет некоторое время.

И здесь, поскольку вы просто хотите удалить первый элемент из списка и добавить его в хвост списка, вы можете сделать простой трюк, например, ниже образца …

  ArrayList<Integer> arrayList = new ArrayList<Integer>(); for (int i = 1; i < 5; i++) { arrayList.add(Integer.valueOf(i)); } System.out.println(arrayList.toString()); // prints [1, 2, 3, 4] Integer removedItem = arrayList.remove(0); arrayList.add(removedItem); // adds to the end of the List System.out.println(arrayList.toString()); // prints [2, 3, 4, 1] 
 Collections.rotate(list, -1); 

/ ……………………………..