# 如何交换`ArrayList`中的两个元素

> 原文： [https://beginnersbook.com/2013/12/how-to-swap-two-elements-in-an-arraylist/](https://beginnersbook.com/2013/12/how-to-swap-two-elements-in-an-arraylist/)

本教程将帮助您了解如何在[`ArrayList`](https://beginnersbook.com/2013/12/java-arraylist/)中交换两个元素。我们使用[`Collections.swap()`](https://docs.oracle.com/javase/7/docs/api/java/util/Collections.html#swap(java.util.List, int, int))方法进行交换。

`public static void swap(List list, int i1, int i2)`

该方法将索引`i1`的元素与索引`i2`的元素交换。它抛出`IndexOutOfBoundsException` - 如果`i1`或`i2`小于零或大于列表的大小（`i1 < 0 || i1 >= list.size() || i2 < 0 || i2 >= list.size()`​​）。

## 在`ArrayList`中交换两个元素的示例

在这个例子中，我们有一个`ArrayList<String>`我们使用`Collections.swap()`方法交换`ArrayList`的第二个（`index = 1`）和第五个（`index = 4`）元素。

```java
package beginnersbook.com;
import java.util.ArrayList;
import java.util.Collections;

public class SwappingExample {

 public static void main(String a[]){
    ArrayList<String> al = new ArrayList<String>();
    al.add("Sachin");
    al.add("Rahul");
    al.add("Saurav");
    al.add("Sunil");
    al.add("Kapil");
    al.add("Vinod");

    System.out.println("ArrayList before Swap:");
    for(String temp: al){
        System.out.println(temp);
    }

    //Swapping 2nd(index 1) element with the 5th(index 4) element
    Collections.swap(al, 1, 4);

    System.out.println("ArrayList after swap:");
    for(String temp: al){
       System.out.println(temp);
    }
  }
}
```

输出：

```java
ArrayList before Swap:
Sachin
Rahul
Saurav
Sunil
Kapil
Vinod
ArrayList after swap:
Sachin
Kapil
Saurav
Sunil
Rahul
Vinod
```