函数定义

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. 安卓导航车机root方法_安卓手机设置充电提示音教程来了!教你三种方法,无需 ROOT!...
  2. ubuntu 设置root启动
  3. matlab破损皮革定位,皮革下料
  4. 假笨说-从一起GC血案谈到反射原理
  5. 顺序表基本操作函数总结
  6. 在Linux中某些程序无法运行,为何linux下的程序不能在windows下运行,不是“废话”那么简单...
  7. FCN全卷积网络随笔
  8. Android4.2.2的Stagefright维护编解码器的数据流
  9. Alios Things的Flash划分规则
  10. axure侧弹层遮罩_Axure教程 带遮罩层的弹出框(9)
  11. 词频统计——三国人物出场次数统计
  12. Django学习-19-缓存
  13. [7]2019-ICDM-Learning to Sample:an Active Learning Framework 论文笔记
  14. GitHub上有不错的 C 开源项目?
  15. 新闻发布系统3.0(javaBean封装)
  16. 常见的DNS记录类型有哪些?如何查询DNS解析记录?
  17. 幼儿园手工之自制时钟_「时钟手工」幼儿园玩教具手工时钟,培养孩子的时间观念...
  18. 大屏h5互动小程序游戏又出圈啦 鱿鱼游戏跳一跳玩出了新高度
  19. dhl寄件邮编错了_DHL国际快递寄错国家怎么办?
  20. ROC曲线和PR曲线,AP,mAP

热门文章

  1. linux route 刷新_LINUX常用命令-route
  2. 机器人学习--基于3D激光雷达数据的MCL全局定位
  3. MCL(minos Configuration Language)
  4. android 收藏功能
  5. 阿斯汤加瑜伽(Ashtanga Yoga)第一序列学习与实践笔记(五)
  6. 如何五分钟内在Mac上安装consolas字体
  7. access口和trunk口
  8. WINCE下的BLENDFUNCTION
  9. mysql中decimal类型的使用,MySQL中decimal类型用法的简单介绍
  10. Python基础学习笔记(十二)文件和目录