看起来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. 编程之美--读书笔记--返回一个数组中所有元素被第一个元素除的结果

    笔试题目1:写一个函数,返回一个数组中所有元素被第一个元素除的结果 很多人会想到如下: void DivAarry(int *pArray,int size) { for(int i=size-1;i ...

  2. 借鉴快速排序的思想,实现算法将整型数组a[0...n]分成两块,使得第一块元素均大于等于0,第二块的元素均小于0,要求算法原地工作且时间复杂度为O(n)

    题目:借鉴快速排序的思想,实现算法将整型数组a[0...n]分成两块,使得第一块元素均大于等于0,第二块的元素均小于0,要求算法原地工作且时间复杂度为O(n) 完整代码实现: #include< ...

  3. bytes数组转string指定编码_一篇文章弄懂Python中所有数组数据类型

    前言 数组类型是各种编程语言中基本的数组结构了,本文来盘点下Python中各种"数组"类型的实现. list tuple array.array str bytes bytearr ...

  4. JAVA数组首位末位互换_堆和堆傻傻分不清?一文告诉你 Java 集合中「堆」的最佳打开方式...

    上一篇的 「Java 集合框架」里,还剩下一个大问题没有说的,那就是 PriorityQueue,优先队列,也就是堆,Heap. 什么是堆? 堆其实就是一种特殊的队列--优先队列. 普通的队列游戏规则 ...

  5. java结构体构建学生 学号_(1)定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩; 急求...

    展开全部 之前写过一个记录学生学号,年龄,体重e5a48de588b63231313335323631343130323136353331333365636132,名字的数组结构,你可以稍作修改就可以 ...

  6. 索引超出数组界限是什么意思_从V8源码分析一个JS 数组的内存占用问题

    前段时间,在排查一个问题的时候,遇到了一个有点令人困惑的情况,有下面这两段代码: const a = new Array(99999); a[99998] = undefined;const b = ...

  7. java链表奇数倒序偶数顺序_将链表中的所有元素为奇数的节点移到元素为偶数节点的前面,并保证奇数之间顺序不变,偶数之间顺序不变。...

    2.将链表中的所有元素为奇数的节点移到元素为偶数节点的前面,并保证奇数之间顺序不变,偶数之间顺序不变. 示例: 交换前链表的顺序             交换后链表的顺序 4→5→3→1→2   == ...

  8. 串口接收标志位语句_如何获取串口的发送和接收的标志位?

    我用C#写了一个小的串口调试软件,并在51的板子上调试成功了,但是换到STM32F103上不行了,由于刚学STM32,还很不熟悉,所以还请各位能否告诉我如何获取串口的发送和接收的标志位.或是帮我把下面 ...

  9. 100999凑整到万位进一_四年级数学第一单元练习作业

    四年级数学第一单元[基础题]作业 1.如果四年级一班18号运动员的编号是4118,那么五年级二班8号运动员的编号是(). 2.王军的身份证号是370722************,他的生日是()年() ...

最新文章

  1. 为什么说BCH是最安全的数字货币之一?
  2. 蚂蚁金服安全应急响应中心上线 用户可提交漏洞
  3. 欠采样的基本概念和现象
  4. 百度地图 js 在安卓端手指缩放无效_利用百度地图绘制3D轨迹演示
  5. VMware网络设置详解 打造超级虚拟网络 (说的最为复杂和全面的)
  6. 列表-列表统计及删除方法扩展
  7. maven项目发布到tomcat里lib包没有发布的问题
  8. oracle里面如何查询sqlid,Oracle SQL查询:如何使用count
  9. 蓝桥杯 ADV-130 算法提高 色盲的民主
  10. 那些在一个公司死磕了5-10年的测试员,最后都怎么样了?
  11. C Linux 文件加锁 lock fcntl
  12. ZMQ == 服务端创建,接受请求的过程
  13. 初始C语言之简单认识C语言-1
  14. crosstab交叉表_用Python统计推断——交叉表篇(上:crosstab与热图)
  15. [原创]找小丑-你要做小丑,还是主宰小丑的那个?
  16. 浅析小程序云原生数据库的设计与应用
  17. python 一张图画多条线_Python画多条线在一个图里
  18. 使用vue-wordcloud实现文字云/词云
  19. GetCurrentTime函数
  20. 基于STM32的恒流源设计

热门文章

  1. 如何成为一名优秀的程序员(三)
  2. 计算机网络智能小区综合分布线系统的总结,智能住宅小区综合布线系统的构建...
  3. 考验逻辑思维能力的软件_23个经过时间考验的应用程序,可以管理您的远程软件开发团队...
  4. 苹果ipa安装包分发下载教程
  5. python爬取58同城租房信息_python爬虫:找房助手V1.0-爬取58同城租房信息(示例代码)...
  6. 袁崇焕的悲剧在于忘了自己是一颗棋子以为有autonomy
  7. 第 6 篇、Linux C基础 | 数据类型和标识符
  8. python笔记打卡
  9. spacedesk如何将手机作为电脑的扩展屏幕
  10. 分布式事务解决方案之最大努力通知 上篇