Отправить элемент ArrayList в конец

У меня есть такой ArrayList:

val myArrayList = ArrayList<String>()

myArrayList.add("a")
myArrayList.add("b")
myArrayList.add("c")

До сих пор «a» - это индекс 0, «b» - это индекс 1, а «c» - это индекс 2. Но я хочу, чтобы «a» перешла в конец ArrayList. Я имею в виду, что я хочу, чтобы индексы были такими: «b» индекс 0, «c» индекс 1, «a» индекс 2.

Вы знаете, как это возможно?

вы можете использовать функцию подкачки, чтобы поменять местами после добавления.

A.El Saeed 16.07.2018 16:47
0
1
104
4

Ответы 4

Есть два способа решить эту проблему. Метод добавления ArrayList (с одним параметром) автоматически добавляет все, что вы добавляете, в конец списка. Вот два способа решить эту проблему:

myArrayList.add("c")
myArrayList.add("b")
myArrayList.add("a")

Порядок этих трех вызовов методов имеет значение в приведенном выше случае. Вы также можете сделать это:

myArrayList.add(0, "c")
myArrayList.add(1, "b")
myArrayList.add(2, "a")

В этом случае порядок трех вызовов методов не имеет значения.

Нет, я это знаю. Я хочу менять индексы, когда захочу, когда это необходимо

user9978028 16.07.2018 16:52

Вам придется создать функцию подкачки, потому что в классе ArrayList нет встроенных методов подкачки.

Praneet Chakraborty 16.07.2018 16:54

Не могли бы вы отредактировать свой ответ и привести пример этой функции обмена?

user9978028 16.07.2018 16:56

Можно использовать Collections.swap(List<?> list, int i, int j);

Как это Collections.swap(myArrayList, 0, 2);

Использовать это

       myArrayList.add("a");
        myArrayList.add("b");
        myArrayList.add("c");         
        Collections.swap(myArrayList, 1, 2);   
        Collections.swap(myArrayList, 2, 0);    
       Log.e("output",myArrayList.toString());

Выход

[b, c, a]

Очень простое решение:

java.util.Collections.rotate(myArrayList, -1)

Таким образом, размер списка не будет иметь значения, даже если список пуст.

Попробуй в Котлинская площадка

Другие вопросы по теме