JAVA的rotate怎么用,Java集合Collections.rotate用法
函数定义
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用法相关推荐
- java学习记录十五:集合二Collections、Set、Map
java学习记录十五:集合二 一.Collections工具类 一.解释 二.常用方法 1.打乱集合顺序 2.按照默认规则排序 3.按指定规则排序 4.批量添加元素 二.可变参数 一.解释 二.写法 ...
- Java基础学习系列--(五)【迭代器,数据结构,List,Set ,TreeSet集合,Collections工具类】
第一章 Iterator迭代器 1.1 Iterator接口 在程序开发中,经常需要遍历集合中的所有元素.针对这种需求,JDK专门提供了一个接口java.util.Iterator. 想要遍历Coll ...
- java(五)-迭代器,数据结构,List,Set ,TreeSet集合,Collections工具类
day05[迭代器,数据结构,List,Set ,TreeSet集合,Collections工具类] 主要内容 Collection集合的遍历方式: 迭代器. foreach(增强for循环) JDK ...
- OnJava8读书笔记(java编程思想)--集合Collections
本篇博文参考on Java8中文版编写 本编博文参考java编程思想第四版编写 文章目录 概述 一.泛型和类型安全的集合 二.基本概念 三.添加元素组(Adding Groups of Element ...
- java rotate,Java Collections rotate()方法与示例
集合类rotate()方法rotation()方法在java.util包中可用. rotation()方法用于将List(l)元素旋转给定距离(dis). rotation()方法是静态方法,因此可以 ...
- 第三次学JAVA再学不好就吃翔(part95)--Collections工具类
学习笔记,仅供参考,有错必纠 Collections工具类 该类完全由在collection上进行操作或返回 collection 的静态方法组成,它包含在 collection上操作的多态算法,即& ...
- java定义一个course类,java集合,定义两个类,学生Student和课程Course,课程被学生选修,请在课程类中提供以下功能:...
Course类: package com.goodprg.d1207.que1; import java.util.ArrayList; import java.util.Collections; i ...
- java中怎么让原有的集合反转_Java如何反转集合中的元素?
在Java编程中,如何反转集合中的元素? 下面的例子演示了如何使用CollectionIlator()和Collection.List()的Collection.reverse()方法来反转集合. p ...
- Java核心技术卷一 -第九章:集合
系列文章目录 Java核心技术卷一 -第一章:java"白皮书"的关键术语 Java核心技术卷一 -第三章:数据类型 Java核心技术卷一 -第三章:变量与常量 Java核心技术卷 ...
最新文章
- 安卓导航车机root方法_安卓手机设置充电提示音教程来了!教你三种方法,无需 ROOT!...
- ubuntu 设置root启动
- matlab破损皮革定位,皮革下料
- 假笨说-从一起GC血案谈到反射原理
- 顺序表基本操作函数总结
- 在Linux中某些程序无法运行,为何linux下的程序不能在windows下运行,不是“废话”那么简单...
- FCN全卷积网络随笔
- Android4.2.2的Stagefright维护编解码器的数据流
- Alios Things的Flash划分规则
- axure侧弹层遮罩_Axure教程 带遮罩层的弹出框(9)
- 词频统计——三国人物出场次数统计
- Django学习-19-缓存
- [7]2019-ICDM-Learning to Sample:an Active Learning Framework 论文笔记
- GitHub上有不错的 C 开源项目?
- 新闻发布系统3.0(javaBean封装)
- 常见的DNS记录类型有哪些?如何查询DNS解析记录?
- 幼儿园手工之自制时钟_「时钟手工」幼儿园玩教具手工时钟,培养孩子的时间观念...
- 大屏h5互动小程序游戏又出圈啦 鱿鱼游戏跳一跳玩出了新高度
- dhl寄件邮编错了_DHL国际快递寄错国家怎么办?
- ROC曲线和PR曲线,AP,mAP