Collections.rotate()用于循环移动List元素,正数distance向右旋转,负数向左,如[1,2,3,4,5]rotate(2)得[4,5,1,2,3],该方法直接修改原列表,支持自动取模,仅适用于List实现类。

在Java中,Collections.rotate() 是一个非常实用的方法,用于将集合中的元素进行循环移动。它能让你把集合的元素整体向右或向左“旋转”指定的位数,而无需手动编写复杂的交换逻辑。
理解 Collections.rotate() 的基本用法
rotate 方法定义在 java.util.Collections 类中,其方法签名如下:
public static void rotate(List> list, int distance)
它接受两个参数:
list:要旋转的 List 集合(注意必须是 List,Set 或其他集合类型不支持) distance:旋转的距离
正数表示向右旋转,负数表示向左旋转。
立即学习“Java免费学习笔记(深入)”;
例如,有一个列表 [1, 2, 3, 4, 5]:
小爱开放平台
小米旗下小爱开放平台
281 查看详情
rotate(list, 1) → [5, 1, 2, 3, 4] rotate(list, -1) → [2, 3, 4, 5, 1] rotate(list, 2) → [4, 5, 1, 2, 3]
实际代码示例
下面是一个简单的使用示例:
List numbers = new ArrayList(Arrays.asList(1, 2, 3, 4, 5));
System.out.println(“原列表: ” + numbers);
Collections.rotate(numbers, 2);
System.out.println(“向右旋转2位: ” + numbers);
Collections.rotate(numbers, -3);
System.out.println(“再向左旋转3位: ” + numbers);
输出结果为:
原列表: [1, 2, 3, 4, 5]
向右旋转2位: [4, 5, 1, 2, 3]
再向左旋转3位: [2, 3, 4, 5, 1]
注意事项与使用技巧
使用 rotate 方法时需要注意以下几点:
只能作用于 List 实现类(如 ArrayList、LinkedList),不能用于 Set、Queue 等 空集合或只有一个元素的集合旋转后不会变化 distance 可以大于集合大小,rotate 方法内部会自动取模处理,比如对长度为5的列表 rotate(7),等效于 rotate(2) 该方法直接修改原列表,不会返回新集合
如果想实现数组的旋转,可以先将数组转为 List,例如:
int[] arr = {10, 20, 30, 40};
List list = Arrays.stream(arr).boxed().collect(Collectors.toList());
Collections.rotate(list, 1);
// 再转回数组(如有需要)基本上就这些。掌握 Collections.rotate 能帮你简洁高效地处理集合元素顺序调整问题,避免手写循环移位代码。
以上就是在Java中如何使用Collections.rotate旋转集合元素_集合旋转技巧说明的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/864999.html
微信扫一扫
支付宝扫一扫