博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数组元素前移,第一个元素放置数组末位
阅读量:5169 次
发布时间:2019-06-13

本文共 1578 字,大约阅读时间需要 5 分钟。

  看起来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来实现这样一个小功能。

 

import java.util.Arrays;public class GetPartOfArray {    private int[] numberArray;    private int len;        public void create (int num) {        len = num;        numberArray = new int[len];        for(int i = 0; i < numberArray.length; i ++) {            numberArray[i] = i;        }    }        public void logArr () {        System.out.println(Arrays.toString(numberArray));    }        public void firstToEnd () {        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 void main (String[] args) {        GetPartOfArray g = new GetPartOfArray();        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下标位置复制一位到目标数组最后元素位置,实现数组第一个元素移动到数组最后位置。

  最后,我们将实现目的的新数组的引用给原来的数组。至此,功能实现啦。

转载于:https://www.cnblogs.com/guofan/p/6627503.html

你可能感兴趣的文章
杂项-CORS:CORS(跨域资源共享)
查看>>
杨柳目-杨柳科:杨柳科
查看>>
Node.js:JXcore
查看>>
OO第三次总结
查看>>
Eclipse UML插件
查看>>
易语言数据库的基本操作
查看>>
打包iOS应用程序
查看>>
EasyUI - DataGrid 去右边空白滚动条列
查看>>
安卓数据库操作
查看>>
MySql中的变量定义
查看>>
spoj2798 QTREE3 Query on a tree again!
查看>>
Python acos() 函数
查看>>
top coder password题解
查看>>
iis php 显示错误信息,IIS7.5 显示详细错误信息的方法
查看>>
php manual 下载,PHP - Manual手册 - Download下载
查看>>
php array merge函数,PHP合并数组函数array_merge用法分析
查看>>
php程序整合uc,UCenter应用程序开发简单实例(双向同步),php与UCenter对接
查看>>
php 文件上传mime 类型,php 上传的MIME类型
查看>>
matlab版本 dd_tools,dd_tools安装要求以及svdd
查看>>
matlab有限元分析教程,Matlab 有限元分析与应用
查看>>