📅  最后修改于: 2023-12-03 15:08:54.607000             🧑  作者: Mango
ArrayList是Java中最常用的集合之一,它提供了访问列表中单个元素的方法。在操作ArrayList时,有时需要将其中的两个元素互换位置。本文介绍了在Java中交换ArrayList中两个元素的几种方法。
Collections类提供了一个swap()方法,可以在指定的List中交换两个元素的位置。这个方法需要三个参数:List对象,要交换的第一个位置和要交换的第二个位置。具体示例代码如下:
import java.util.ArrayList;
import java.util.Collections;
public class SwapArrayListElementsDemo {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
System.out.println("Before swap: " + list);
Collections.swap(list, 1, 2);
System.out.println("After swap: " + list);
}
}
输出结果为:
Before swap: [A, B, C, D]
After swap: [A, C, B, D]
有时候我们可能想要自己定义一个交换函数,来实现交换ArrayList中两个元素的位置。具体示例代码如下:
import java.util.ArrayList;
public class SwapArrayListElementsDemo {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
System.out.println("Before swap: " + list);
swap(list, 1, 2);
System.out.println("After swap: " + list);
}
public static void swap(ArrayList<String> list, int i, int j) {
String temp = list.get(i);
list.set(i, list.get(j));
list.set(j, temp);
}
}
输出结果为:
Before swap: [A, B, C, D]
After swap: [A, C, B, D]
如果您使用的是Java8或更高版本,可以使用Java8中的新特性来交换ArrayList中的元素。具体示例代码如下:
import java.util.ArrayList;
import java.util.Collections;
import java.util.stream.IntStream;
public class SwapArrayListElementsDemo {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
System.out.println("Before swap: " + list);
Collections.swap(list, 1, 2);
System.out.println("After swap: " + list);
IntStream.range(0, list.size())
.filter(i -> i != 1 && i != 2)
.forEach(i -> Collections.swap(list, i, i));
System.out.println("After second swap: " + list);
}
}
输出结果为:
Before swap: [A, B, C, D]
After swap: [A, C, B, D]
After second swap: [A, C, B, D]
以上就是在Java中交换ArrayList中两个元素的几种方法。