Collections.rotate()用于旋转列表元素,正数距离向右移动,负数向左。例如list=["a","b","c","d","e"],rotate(list,2)结果为["d","e","a","b","c"],rotate(list,-2)结果为["c","d","e","a","b"]。

Java 中的 Collections.rotate() 方法用于将集合中的元素向右或向左“旋转”指定的距离。这个操作不会改变集合的大小,只是重新排列元素的位置。
基本用法
Collections.rotate(List list, int distance) 接受两个参数:
- list:要旋转的列表(必须是可修改的 List)
- distance:旋转的距离
如果 distance 为正数,元素向右移动(末尾元素移到前面);
如果 distance 为负数,元素向左移动(前面元素移到后面)。
旋转示例
假设有一个列表:
List执行 Collections.rotate(list, 2) 后,结果为:
立即学习“Java免费学习笔记(深入)”;
["d", "e", "a", "b", "c"]解释:最后两个元素 "d" 和 "e" 被移到了前面。
若执行 Collections.rotate(list, -2),结果为:
["c", "d", "e", "a", "b"]解释:前两个元素 "a" 和 "b" 被移到了末尾。
注意事项
- 该方法只适用于 List 接口的实现类(如 ArrayList、LinkedList),不适用于 Set 或其他集合类型。
- 传入的 List 必须支持随机访问和修改,否则可能抛出异常。
- 如果列表为空或只有一个元素,旋转无效果。
- 实际旋转距离会自动对列表大小取模,避免重复旋转。例如,rotate(list, 7) 在长度为 5 的列表中等价于 rotate(list, 2)。
基本上就这些。使用 rotate 方法可以方便地调整元素顺序,适合轮播、队列调度等场景。操作简单但容易忽略负数距离的左移效果,注意理解方向逻辑。










