Collections.swap()用于交换List中两索引位置的元素,如示例中将索引1与3的元素互换,实现原地交换且不抛异常当索引相同时,底层通过set和get方法完成值替换。

在Java中,Collections.swap() 是一个静态方法,用于交换集合中两个指定位置的元素。这个方法属于 java.util.Collections 类,适用于所有实现了 List 接口的集合(如 ArrayList、LinkedList 等)。
方法签名
public static void swap(List> list, int i, int j)
- list:要操作的列表
- i:第一个元素的索引
- j:第二个元素的索引
该方法会将索引 i 和索引 j 处的元素互换位置。
使用示例
下面是一个简单的例子,演示如何使用 Collections.swap():
import java.util.*;
public class SwapExample {
public static void main(String[] args) {
List names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
names.add("Charlie");
names.add("David");
System.out.println("交换前: " + names); // [Alice, Bob, Charlie, David]
// 交换索引1和索引3的元素
Collections.swap(names, 1, 3);
System.out.println("交换后: " + names); // [Alice, David, Charlie, Bob]
}
}
注意事项
- 索引必须在集合范围内,否则会抛出 IndexOutOfBoundsException
- 该方法只适用于 List 集合,不适用于 Set、Map 等其他集合类型
- 交换是直接在原列表上进行的,不会创建新列表
- 如果传入相同的索引(i == j),则列表不变,也不会报错
内部实现原理
Collections.swap() 的底层实现其实很简单,本质就是:
徒步露营户外元素合集矢量素材适用于户外活动邀请函(设计露营、野餐或其他户外活动的邀请卡)、餐饮业务品牌(提供野餐篮或户外餐饮服务的公司,可以用这些模板来设计菜单、包装和广告)、生活方式杂志和博客(关于户外生活、自然探索或个人旅行体验的文章和出版物中)、社交媒体营销(推广户外活动、露营地或旅游目的地时使用)等相关设计的AI格式素材。
立即学习“Java免费学习笔记(深入)”;
- 取出索引 i 处的元素
- 取出索引 j 处的元素
- 用 set() 方法互换位置
相当于手动写:
list.set(i, list.set(j, list.get(i)));基本上就这些。Collections.swap 使用起来简洁安全,适合在需要交换列表元素时直接调用,无需自己写临时变量交换逻辑。









