JAVA数组首位末位互换_数组元素前移,第一个元素放置数组末位
看起来so sasy,slice截取,concat拼接到末尾。
就像这样:
var arr = [1,2,3];var newArr = arr.slice(1).concat(arr.slice(0,1));///[2,3,1]
js有专门截取数组的api,很方便很强大,但java并没有,本文使用java来实现这样一个小功能。
importjava.util.Arrays;public classGetPartOfArray {private int[] numberArray;private intlen;public void create (intnum) {
len=num;
numberArray= new int[len];for(int i = 0; i < numberArray.length; i ++) {
numberArray[i]=i;
}
}public voidlogArr () {
System.out.println(Arrays.toString(numberArray));
}public voidfirstToEnd () {int[] numArr = new int[len];
System.arraycopy(numberArray,1, numArr, 0, len - 1);
System.arraycopy(numberArray,0, numArr, len - 1, 1);
numberArray=numArr;
}public static voidmain (String[] args) {
GetPartOfArray g= newGetPartOfArray();
g.create(10);
g.logArr();
g.firstToEnd();
g.logArr();
}
}
首先,为了为了方便查看数组,引入 java.util.Arrays ,使用 Arrays.toString(数组) 这个api可以很方便的查看数组元素,不然直接 System.out.println(数组) 输出的话,绝对让你看不懂,有可能是引用数组对象的地址。
然后创建一个数组,自定义长度,元素值为下标值,简单易看。
接着就是实现这个功能最重要的api,System.arraycopy(),这是一个复制用的api,里面有5个参数:
System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length);
源数组, 开始复制位置, 目标数组, 起始位置, 复制长度
很好理解~
我们创建一个新数组,通过分别复制第一个元素与剩余元素来达到目的效果。第一次我们从源数组第二个元素下标位置开始复制,然后将复制值从目标数组的0下标位置开始到预复制长度,这样我们实现了数组元素的整体前移一位;第二次,从源数组0下标位置复制一位到目标数组最后元素位置,实现数组第一个元素移动到数组最后位置。
最后,我们将实现目的的新数组的引用给原来的数组。至此,功能实现啦。
JAVA数组首位末位互换_数组元素前移,第一个元素放置数组末位相关推荐
- 编程之美--读书笔记--返回一个数组中所有元素被第一个元素除的结果
笔试题目1:写一个函数,返回一个数组中所有元素被第一个元素除的结果 很多人会想到如下: void DivAarry(int *pArray,int size) { for(int i=size-1;i ...
- 借鉴快速排序的思想,实现算法将整型数组a[0...n]分成两块,使得第一块元素均大于等于0,第二块的元素均小于0,要求算法原地工作且时间复杂度为O(n)
题目:借鉴快速排序的思想,实现算法将整型数组a[0...n]分成两块,使得第一块元素均大于等于0,第二块的元素均小于0,要求算法原地工作且时间复杂度为O(n) 完整代码实现: #include< ...
- bytes数组转string指定编码_一篇文章弄懂Python中所有数组数据类型
前言 数组类型是各种编程语言中基本的数组结构了,本文来盘点下Python中各种"数组"类型的实现. list tuple array.array str bytes bytearr ...
- JAVA数组首位末位互换_堆和堆傻傻分不清?一文告诉你 Java 集合中「堆」的最佳打开方式...
上一篇的 「Java 集合框架」里,还剩下一个大问题没有说的,那就是 PriorityQueue,优先队列,也就是堆,Heap. 什么是堆? 堆其实就是一种特殊的队列--优先队列. 普通的队列游戏规则 ...
- java结构体构建学生 学号_(1)定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩; 急求...
展开全部 之前写过一个记录学生学号,年龄,体重e5a48de588b63231313335323631343130323136353331333365636132,名字的数组结构,你可以稍作修改就可以 ...
- 索引超出数组界限是什么意思_从V8源码分析一个JS 数组的内存占用问题
前段时间,在排查一个问题的时候,遇到了一个有点令人困惑的情况,有下面这两段代码: const a = new Array(99999); a[99998] = undefined;const b = ...
- java链表奇数倒序偶数顺序_将链表中的所有元素为奇数的节点移到元素为偶数节点的前面,并保证奇数之间顺序不变,偶数之间顺序不变。...
2.将链表中的所有元素为奇数的节点移到元素为偶数节点的前面,并保证奇数之间顺序不变,偶数之间顺序不变. 示例: 交换前链表的顺序 交换后链表的顺序 4→5→3→1→2 == ...
- 串口接收标志位语句_如何获取串口的发送和接收的标志位?
我用C#写了一个小的串口调试软件,并在51的板子上调试成功了,但是换到STM32F103上不行了,由于刚学STM32,还很不熟悉,所以还请各位能否告诉我如何获取串口的发送和接收的标志位.或是帮我把下面 ...
- 100999凑整到万位进一_四年级数学第一单元练习作业
四年级数学第一单元[基础题]作业 1.如果四年级一班18号运动员的编号是4118,那么五年级二班8号运动员的编号是(). 2.王军的身份证号是370722************,他的生日是()年() ...
最新文章
- 为什么说BCH是最安全的数字货币之一?
- 蚂蚁金服安全应急响应中心上线 用户可提交漏洞
- 欠采样的基本概念和现象
- 百度地图 js 在安卓端手指缩放无效_利用百度地图绘制3D轨迹演示
- VMware网络设置详解 打造超级虚拟网络 (说的最为复杂和全面的)
- 列表-列表统计及删除方法扩展
- maven项目发布到tomcat里lib包没有发布的问题
- oracle里面如何查询sqlid,Oracle SQL查询:如何使用count
- 蓝桥杯 ADV-130 算法提高 色盲的民主
- 那些在一个公司死磕了5-10年的测试员,最后都怎么样了?
- C Linux 文件加锁 lock fcntl
- ZMQ == 服务端创建,接受请求的过程
- 初始C语言之简单认识C语言-1
- crosstab交叉表_用Python统计推断——交叉表篇(上:crosstab与热图)
- [原创]找小丑-你要做小丑,还是主宰小丑的那个?
- 浅析小程序云原生数据库的设计与应用
- python 一张图画多条线_Python画多条线在一个图里
- 使用vue-wordcloud实现文字云/词云
- GetCurrentTime函数
- 基于STM32的恒流源设计
热门文章
- 如何成为一名优秀的程序员(三)
- 计算机网络智能小区综合分布线系统的总结,智能住宅小区综合布线系统的构建...
- 考验逻辑思维能力的软件_23个经过时间考验的应用程序,可以管理您的远程软件开发团队...
- 苹果ipa安装包分发下载教程
- python爬取58同城租房信息_python爬虫:找房助手V1.0-爬取58同城租房信息(示例代码)...
- 袁崇焕的悲剧在于忘了自己是一颗棋子以为有autonomy
- 第 6 篇、Linux C基础 | 数据类型和标识符
- python笔记打卡
- spacedesk如何将手机作为电脑的扩展屏幕
- 分布式事务解决方案之最大努力通知 上篇