Как поменять местами два элемента в ArrayList в Java?
Мы можем поменять местами два элемента списка массивов, используя метод Collections.swap (). Этот метод принимает три аргумента. Первый аргумент - это ArrayList, а два других аргумента - это индексы элементов. Этот метод ничего не возвращает.
Синтаксис:
public static void swap(List list, int a, int b);
Параметры
- list : ArrayList или любой реализующий класс List, в котором элементы меняются местами
- a: индекс первого элемента
- b : индекс второго элемента
Исключение: выдает исключение IndexOutOfBoundsException, если индекс списка массивов меньше 0 или больше размера списка массивов.
Example 1
Java
// Java program to swap two elements in an ArrayList import java.util.ArrayList; import java.util.Collections; public class GFG { public static void main(String a[]) { // Create the Array List ArrayList<String> ArrList = new ArrayList<String>(); // add the values in Array List ArrList.add( "Item 1" ); ArrList.add( "Item 2" ); ArrList.add( "Item 3" ); ArrList.add( "Item 4" ); ArrList.add( "Item 5" ); // display Array List before swap System.out.println( "Before Swap the ArrayList " ); System.out.println(ArrList); // Swapping the elements at 1 and 2 indeces Collections.swap(ArrList, 1 , 2 ); // display Array List after swap System.out.println( "After Swap the ArrayList" ); System.out.println(ArrList); } } |
Before Swap the ArrayList [Item 1, Item 2, Item 3, Item 4, Item 5] After Swap the ArrayList [Item 1, Item 3, Item 2, Item 4, Item 5]
Example 2
Java
// Java program to swap two elements in an ArrayList import java.util.ArrayList; import java.util.Collections; public class GFG { public static void main(String a[]) throws Exception { // Create the Array List ArrayList<String> ArrList = new ArrayList<String>(); // add the values in Array List ArrList.add( "Item 1" ); ArrList.add( "Item 2" ); ArrList.add( "Item 3" ); ArrList.add( "Item 4" ); ArrList.add( "Item 5" ); // display Array List before swap System.out.println( "Before Swap the ArrayList " ); System.out.println(ArrList); // Swapping the elements at -1 and 2 indeces // Throws IndexOutOfBounds Exception Collections.swap(ArrList, - 1 , 2 ); } } |
Выход
Исключение в потоке "main" java.lang.IndexOutOfBoundsException: индекс -1 выходит за пределы для длины 5 в java.base / jdk.internal.util.Preconditions.outOfBounds (Preconditions.java:64) в java.base / jdk.internal.util.Preconditions.outOfBoundsCheckIndex (Preconditions.java:70) в java.base / jdk.internal.util.Preconditions.checkIndex (Preconditions.java:248) в java.base / java.util.Objects.checkIndex (Objects.java:372) в java.base / java.util.ArrayList.get (ArrayList.java:458) в java.base / java.util.Collections.swap (Collections.java:501) в GFG.main (GFG.java:27)
Вниманию читателя! Не переставай учиться сейчас. Ознакомьтесь со всеми важными концепциями Java Foundation и коллекций с помощью курса "Основы Java и Java Collections" по доступной для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .