函数定义

public static void rotate([List]> list,

int distance)

功能描述

按指定距离旋转列表中的元素。

PS:个人认为应该叫循环移位比较合适。当distance>0时,向右移位;当distance<0时,向左移位。

假如有一个列表list = ['a', 'b', 'c', 'd', 'e'],执行Collections.rotate(list, 1)和执行Collections.rotate(list, -4)的结果是一样的,都是['b', 'c', 'd', 'e', 'a'],

代码如下:

public static void main(String[] args) {

String s = "abcde";

List list = strToList(s);

List list2 = strToList(s);

Collections.rotate(list, 1);

System.out.println(list);

Collections.rotate(list2, -4);

System.out.println(list2);

}

public static List strToList(String s){

char[] arr = s.toCharArray();

List list = new ArrayList<>();

for (int i = 0; i < arr.length; i++) {

list.add(arr[i]);

}

return list;

}

两次运行结果如下:

可见,右移1位和左移4位的效果是一样的。

另外,这个方法有个比较有趣的用法,就是可以只移动子列表的元素,子列表外的其它元素保持位置不变。比如说有列表list = ['a', 'b', 'c', 'd', 'e'] , 现在只想移动子列表['b', 'c', 'd'],将b左移一位,变成[ 'c', 'd', 'b']而主列表中的a、e位置不变,你可以这样用:

public class TestCollectionsRotate2 {

public static void main(String[] args) {

String s = "abcde";

List list = strToList(s);

Collections.rotate(list.subList(1, 4), -1);

System.out.println(list);

}

public static List strToList(String s) {

char[] arr = s.toCharArray();

List list = new ArrayList<>();

for (int j = 0; j < arr.length; j++) {

list.add(arr[j]);

}

return list;

}

}

输出结果如下:

可见在保持a,e位置不变的条件下,完成的b的位置移动。

JAVA的rotate怎么用,Java集合Collections.rotate用法相关推荐

  1. java学习记录十五:集合二Collections、Set、Map

    java学习记录十五:集合二 一.Collections工具类 一.解释 二.常用方法 1.打乱集合顺序 2.按照默认规则排序 3.按指定规则排序 4.批量添加元素 二.可变参数 一.解释 二.写法 ...

  2. Java基础学习系列--(五)【迭代器,数据结构,List,Set ,TreeSet集合,Collections工具类】

    第一章 Iterator迭代器 1.1 Iterator接口 在程序开发中,经常需要遍历集合中的所有元素.针对这种需求,JDK专门提供了一个接口java.util.Iterator. 想要遍历Coll ...

  3. java(五)-迭代器,数据结构,List,Set ,TreeSet集合,Collections工具类

    day05[迭代器,数据结构,List,Set ,TreeSet集合,Collections工具类] 主要内容 Collection集合的遍历方式: 迭代器. foreach(增强for循环) JDK ...

  4. OnJava8读书笔记(java编程思想)--集合Collections

    本篇博文参考on Java8中文版编写 本编博文参考java编程思想第四版编写 文章目录 概述 一.泛型和类型安全的集合 二.基本概念 三.添加元素组(Adding Groups of Element ...

  5. java rotate,Java Collections rotate()方法与示例

    集合类rotate()方法rotation()方法在java.util包中可用. rotation()方法用于将List(l)元素旋转给定距离(dis). rotation()方法是静态方法,因此可以 ...

  6. 第三次学JAVA再学不好就吃翔(part95)--Collections工具类

    学习笔记,仅供参考,有错必纠 Collections工具类 该类完全由在collection上进行操作或返回 collection 的静态方法组成,它包含在 collection上操作的多态算法,即& ...

  7. java定义一个course类,java集合,定义两个类,学生Student和课程Course,课程被学生选修,请在课程类中提供以下功能:...

    Course类: package com.goodprg.d1207.que1; import java.util.ArrayList; import java.util.Collections; i ...

  8. java中怎么让原有的集合反转_Java如何反转集合中的元素?

    在Java编程中,如何反转集合中的元素? 下面的例子演示了如何使用CollectionIlator()和Collection.List()的Collection.reverse()方法来反转集合. p ...

  9. Java核心技术卷一 -第九章:集合

    系列文章目录 Java核心技术卷一 -第一章:java"白皮书"的关键术语 Java核心技术卷一 -第三章:数据类型 Java核心技术卷一 -第三章:变量与常量 Java核心技术卷 ...

最新文章

  1. hihoCoder#1037 : 数字三角形(DP)
  2. HOG特征向量的代码 源代码改
  3. 《快学 Go 语言》第 7 课 —— 冰糖葫芦串
  4. POJ 2240题(Floyd)
  5. 在linux搭性能测试环境,性能测试学习第七天-----JMeter之linux环境部署篇
  6. 126. PHP 加密
  7. 厉害了,盘点那些改变世界的代码!
  8. 漆包线规格型号(漆包线外径)
  9. 2022电大国家开放大学网上形考任务-普通心理学非免费(非答案)
  10. PCA 实践 利用 PCA 算法对人脸数据集内所有人进行降维和特征提取 PCA原理解析+代码
  11. 实时应用监控平台CAT
  12. android平台获取手机IMSI,IMEI ,序列号,和 手机号的方法
  13. 利用GDI+基于WIN32实现桌面雪花效果(一)
  14. 平狄克微观经济学笔记和课后习题答案
  15. 在线万能文件格式转换器
  16. 用Python做命令行地址簿
  17. 金融衍生工具考前最后一练
  18. Elasticsearch搜索结果处理
  19. html的flash怎么放大缩小,在flash里怎么设置flash右键不出现放大缩小
  20. 第五届双态IT北京用户大会 | 倒计时2天!大佬云集!

热门文章

  1. ProcessOn中的快捷键
  2. 关于全网下架 工控闪剑 共享资源的通知
  3. 2017报计算机热不热,2017夏天热不热
  4. 谷歌广告代运营,谷歌广告代投
  5. 江民公司网络版问题汇总二
  6. 【SSM】第一课 超市订单管理平台--SSM框架整合
  7. 使用tooltip弹出图片
  8. CodeForces 104B-Testing Pants for Sadness(思维题)
  9. SSL 连接过程详解
  10. rk3399 android 11.0 使用SoundRecord 开始有杂音