Узнайте, как поменять местами два указанных элемента в 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