Как поменять местами два элемента в ArrayList в Java

Узнайте, как поменять местами два указанных элемента в ArrayList в Java. Мы будем использовать метод Collections.swap(), чтобы поменять местами два элемента в указанном arraylist по указанным индексам.

1. API Collections.swap()

Метод Collections.swap() меняет местами элементы в указанных позициях в указанном списке. Аргументы индекса должны быть допустимым индексом в списке, иначе метод выдаст исключение IndexOutOfBoundsException.

public static void swap(List<?> list, int i, int j)

Где —

  • список – список, в котором можно поменять местами элементы.
  • i – индекс одного элемента, который необходимо заменить.
  • j – индекс другого элемента, который необходимо заменить.

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

2. Перестановка двух элементов в ArrayList

Следующая программа Java меняет местами два указанных элемента в заданном списке. В этом примере мы меняем местами элементы на позициях '1' и '2'. Элементы на этих позициях в списке — 'b' и 'c'.

Обратите внимание, что индексы начинаются с 0.

ArrayList<String> list = new ArrayList<>(Arrays.asList("a", "b", "c", "d", "e", "f"));System.out.println(list);Collections.swap(list, 1, 2);System.out.println(list);

Вывод программы.

[a, b, c, d, e, f][a, c, b, d, e, f]

3. Выдает исключение IndexOutOfBoundsException

Обратите внимание: если указанные индексы выходят за пределы допустимого диапазона, метод выдает исключение IndexOutOfBoundsException.

Assertions.assertThrows(IndexOutOfBoundsException.class,() -> {Collections.swap(list, 10, 11);});

Вышеприведенный пример — это программа Java для обмена значениями элемента и соответствующими ему значениями индекса. Дайте мне знать, если у вас есть вопросы.

Подробнее: Документация по ArrayList Java

Исходный код на Github

Прокрутить вверх