精华内容
下载资源
问答
  • java数组拷贝主要五种方法,分别是手写的循环拷贝以及自带的System.arraycopy(),... clone() 这个是数组自带的复制方法 int[] copy=target.clone(); 这个也可以完成复制,但不能和其它几种方法一样控制复制的长度

    java数组拷贝主要有五种方法,分别是手写的循环拷贝以及自带的System.arraycopy(),Arrays.copyOf(),Arrays.copyOfRange()和clone()方法。下面分别介绍一下这几种拷贝。

    循环拷贝

    其实就是利用for或while循环将数组中的值逐个复制
    代码如下:

        public static int[] copyArray(int[] a,int length){
            int[] b = new int[a.length];
            for (int i = 0; i < length; i++) {
                b[i] = a[i];
            }
            return b;
        }
    

    System.arraycopy()

    这个是系统自带的方法可以直接调用

    int[] copy = new int[length];
    System.arraycopy(target,0,copy,0, length);
    

    target是需要复制的数组,target,0 的意思是从0位置开始复制,copy是要复制到的数组,copy,0 的意思是复制到从0位置开始,length代表的是需要复制的长度,这一句的意思就是将target数组从0位置开始复制length位到copy数组的从0位置开始以及之后的共length位

    Arrays.copyOf()

    这个是系统自带的方法可以直接调用

    int[] copy= Arrays.copyOf(target,target.length);
    

    Arrays.copyOfRange()

    这个和 Arrays.copyOf()并无什么区别

    int[] copy= Arrays.copyOfRange(target,target.length);
    

    clone()

    这个是数组自带的复制方法

    int[] copy=target.clone();
    

    这个也可以完成复制,但不能和其它几种方法一样控制复制的长度

    展开全文
  • java中的常用数组复制方法 1. arraycopy()方法 java.lang.System类中的arraycopy方法: public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 从指定源数组中复制一个数组...

    java中的常用数组复制方法

    1. arraycopy()方法

    java.lang.System类中的arraycopy方法: public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
    从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。

    • src : 源数组
    • srcPos: 源数组起始位置
    • dest: 目标数组
    • destPos: 目标数组起始位置
    • length:复制的数组元素数量

    System.arraycopy方法的缺点就是必须要提前创建好目的数组,而且要注意目的数组类型和长度

    package top.codepig.Demo01;
    
    public class Test01 {
        public static void main(String[] args) {
            demo01Arraycopy();
        }
     private static void demo01Arraycopy() {
            int[] src = {7,8,9,10};
            int[] dest = {1,2,3,4};
            System.out.println(Arrays.toString(dest));
            System.arraycopy(src,0,dest,0,3);//把scr数组下标从0开始依次复制到dest数组下标为0的位置,复制长度为3
            System.out.println(Arrays.toString(dest));
        }
    }
    

    输出结果:
    在这里插入图片描述

    2. copyOf()方法

    java.util.Arrays类中copyOf方法:public static int[] copyOf(int[] original, int newLength) 复制指定的数组,截取或用 0 填充(如有必要),以使副本具有指定的长度。

    该方法有返回值,返回值类型可以为8种基本类型数组或者引用类型数组,根据参数列表不同,调用不同的方法,实现了重载

    • oringinal:原数组
    • newlength:复制数组的长度

    Arrays.copyOf方法的缺点就是必须要从原数组的起始位置开始复制

    package top.codepig.Demo01;
    
    public class Test01 {
        public static void main(String[] args) {
           demo02CopyOf();
        }
       private static void demo02CopyOf() {
            int[] src = {1,2,3,4,5,6,7,8,9};
            int[] dest = Arrays.copyOf(src,7);//把数组src下标从0开始依次复制到新数组dest当中,复制长度为7
            System.out.println(Arrays.toString(dest));
        }
    }
    

    输出结果:
    在这里插入图片描述

    3. copyOfRange()方法

    public static boolean[] copyOfRange(boolean[] original, int from, int to):将指定数组的指定范围复制到一个新数组。

    该方法有返回值,返回值类型可以为8种基本类型数组或者引用类型数组,根据参数列表不同,调用不同的方法,实现了重载

    • oringinal:原数组
    • from:起始位置
    • to:结束位置

    【注意事项】:包头不包尾

    package top.codepig.Demo01;
    
    public class Test01 {
        public static void main(String[] args) {
            demo03CopyOfRange();
        }
     private static void demo03CopyOfRange() {
            int[] src = {1,2,3,4,5,6,7,8,9};
            int[] dest = Arrays.copyOfRange(src,0,8);//把数组src下标从0开始到下标为8结束依次复制到新数组dest当中【包含下标0但不包含下标8】
            System.out.println(Arrays.toString(dest));
        }
    }
    

    输出结果:
    在这里插入图片描述
    附上自己的博客地址

    展开全文
  • 数组复制的几种方法

    千次阅读 2020-01-09 14:26:51
    可以选定复制数组的部分内容,但新数组需要先声明并初始化;另外这种方法可以用来实现原数组的扩容,即将原数组的内容拷进去,但是比较麻烦 三、Arrays.copyOf方法:Arrays.copyOf(original, n...

    一、for循环

    二、使用system.arraycopy方法:    System.arraycopy(src, srcPos, dest, destPos, length);可以选定复制原数组的部分内容,但新数组需要先声明并初始化;另外这种方法可以用来实现原数组的扩容,即将原数组的内容拷进去,但是比较麻烦

    三、Arrays.copyOf方法:Arrays.copyOf(original, newLength)返回值为复制后的新数组,因为是返回值故不需要提前创建,直接声明然后使用即可;也可以用于实现数组的扩容,并且更简单,如:    int arr2[] = Arrays.copyOf(arr, arr.length+10);
     

     

    展开全文
  • 数组复制的三种方法(超详细)

    千次阅读 2021-05-02 20:22:17
    数组复制的三种方法Arrays类copyOf( )方法:copyOfRangs( )方法:System类arraycopy( ): Arrays类 copyOf( )方法: copyOf() 方法适用于从下标0开始,复制到指定长度的数组 源码如下: public static int[] copyOf(int[]...

    Arrays类

    copyOf( )方法:

    copyOf() 方法适用于从下标0开始,复制指定长度的元素到目标数组
    源码如下:

    public static int[] copyOf(int[] original, int newLength) 
    

    由源码可见我们需要传入两个数据:
    original—原数组(被复制的数组)
    newLength—新长度(需要复制到新数组的长度,从索引0开始)
    注意事项 :
    原数组长度不够时,会使用该数组类型的默认值填充
    如果{新长度}是负数,会抛出异常: NegativeArraySizeException
    如果{原数组}为null,会抛出异常: NullPointerException

    示例如下:

    import java.util.Arrays;
    public class ArrayCopy {
        public static void main(String[] args) {
            String[] array1={"1","2"};
            String[] array2;
            array2=Arrays.copyOf(array1,3);
            //需要传入两个数据,第一个是被复制的数组,第二个为需要复制的长度(从索引0开始)
            for (String a:array2) {
                System.out.println(a);
            }
        }
    }
    
    

    输出:

    1
    2
    null
    

    copyOfRangs( )方法:

    copyOfRangs()方法适用于将指定数组的指定范围复制到新数组中。

    源码 :

    public static int[] copyOfRange(int[] original, int from, int to)

    由源码见我们需要传入三个数据 :original, from, to
    original—原数组
    from—初始索引(初始索引必须在零和原数组长度之间)
    to—终止索引(复制的数据 不包括终止索引的数据)
    注意事项 :

    • 异常 ArrayIndexOutOfBoundsException
      初始索引小于0,或初始索引大于目标数组长度( from<0 || from>to )
    • 异常 IllegalArgumentException
      初始索引大于终止索引( from>to )
    • 异常 NullPointerException
      源数组为null
      示例代码
    import java.util.Arrays;
    public class ArrayCopy {
        public static void main(String[] args) {
            int[] array1={1,2,3,4,5,6};
            int[] array2;
            array2=Arrays.copyOfRange(array1,0,4);
            for (int a:
                 array2) {
                System.out.println(a);
            }
        }
    }
    

    输出 :

    1
    2
    3
    4
    

    System类

    arraycopy( ):

    arraycopy( )方法适用于:从指定的源数组指定位置复制数组,到目标数组的指定位置
    源码 :

    public static native void arraycopy(
    Object src, int srcPos, Object dest, int destPos, int length);

    由源码可知,我们需要传入5个数据
    src—源数组
    srcPos—源数组中的起始位置。
    dest—目标数组
    destPos—目标数据中的起始位置
    length—源数组中需要复制的数组元素的数量
    注意事项 :

    • 异常 IndexOutOfBoundsException
      复制导致出现 目标数组 边界之外的数据。
    • 异常 ArrayStoreException
      源数组 中的元素由于类型不匹配而无法存储到 目标数组 数组中。
    • 异常 NullPointerException
      源数组目标数组 为null。
      示例如下 :
    public class ArrayCopy {
        public static void main(String[] args) {
            int[] array1={1,2,3,4,5,6};
            int[] array2 ={11,22,33,44,55,66,77,88};
            System.arraycopy(array1,1,array2,2,5);
            for (int a: array2) {
                System.out.println(a);
            }
        }
    }
    

    输出 :

    11
    22
    2
    3
    4
    5
    6
    88
    
    展开全文
  • 1.array_shift()将数组的第一个单元移出再返回,这对时候数组的第一个单元要单独处理很方便。 复制代码 代码如下:<? $tmparray = array(“1”, “2”, “3”, “4”); $tmparray = array_shift ($tmparray); ...
  • 在Java语言中,一般会采用下面的几种方法进行数组复制。 a) for循环逐一复制; b) System.arraycopy()方法 c) Arrays.copyOf()方法 d) 使用clone()方法 e) Arrays.copyOfRange()方法 接下来,我们看下这几种方法...
  • 数组复制的几种常用方法

    万次阅读 2015-09-05 21:40:17
     src为原数组,1为复制的起始位置,dest为目的数组,0为目的数组放置的起始位置,6为复制的长度 2、dest=(int[]) src.clone();//使用clone创建 dest为目的数组,src为原数组,clone复制实现数组全部复制 3、dest=...
  • JQuery的方法: 深复制【可以迭代】:var newJson = jQuery.extend(true,{}, json); 浅复制【不能迭代】:var newJson = jQuery.extend({}, json); var newJson = $.map(json,function (n) { return n; }); 数组的...
  • 一维数组的创建方法方法一: 使用如下: String[] arr; arr = new String[5]; 方法二: 使用如下: int[] arr = new int[6]; 方法三: 使用如下: int[] arr={1,5,6,8,2,3,7}; 二维数组的创建方法方法一: ...
  • 一、数组复制的三种方式 String[] a = {"1", "2", "3", "4", "5"}; // 方法一 // Arrays.copyOf() String[] b = Arrays.copyOf(a, a.length); System.out.println("Arrays.copyOf(): " + Arrays.toString(b)...
  • Java 数组(常用方法)

    2021-03-06 20:31:53
    Arrays //包含操作数组的各种方法字段int binarySearch(Object[] obj, Object key) //使用二分法搜索数组中指定的数,返回索引Object[] copyOf(Object[] original, int newLength) //复制original数组,返回新的长度...
  • 数组常用方法汇总

    万次阅读 多人点赞 2017-11-07 17:21:14
    返回或设置一个数组中的元素个数 设置 length 属性的值来截断任何数组 Array.from() : 对伪数组或可迭代对象(包括arguments Array,Map,Set,String…)转换成数组对象 语法 Array.from(arrayLike, mapFn, thisArg)...
  • 常用数组操作方法

    2018-03-28 18:08:43
    (最近除了项目在练习自己的编程能力,以下是牛客... 关于用到的方法在下面代码中都会注释 数组的练习 1.查找数组元素位置eg: 找出元素 item 在给定数组 arr 中的位置 * 解决方案 for循环function indexOf(arr, ite
  • 数组复制常用方法

    2020-09-12 21:19:56
    数组复制方法一: 通过遍历原数组,遍历的过程中,对原数组进行取值, 然后在赋值给新的数组。 注意: 这种复制方法要求,目标数组的长度,不能小于原数组的长度, 否则复制的过程中会出现,...
  • 封装数组方法push 封装数组方法pop 封装数组方法Shift 封装数组方法Unshift 封装数组方法splice 封装数组方法concat 封装数组方法slice 封装数组方法flat 封装数组方法reverse 封装数组方法sort 封装数组方法indexOf...
  • js数组常用方法

    万次阅读 多人点赞 2019-04-23 11:33:07
    数组常用方法 0.Array.isArray()用于确定传递的值是否是一个Array。 1.Array.of() 返回一个由参数组成的数组 2.Array.from() 将数组对象转换为数组 不改变原对象 返回新数组 3.pop() 删除数组最后一个元素(改变...
  • 数组的四种复制方法

    千次阅读 2017-10-26 09:26:14
    java数组拷贝主要四种方法,分别是循环赋值,System.arraycopy(),Arrays.copyOf()(或者Arrays.copyOfRange)和clone()方法。下面分别介绍一下这几种拷贝。 循环拷贝(速度相对比较慢) 循环拷贝其实没什么好说的...
  • 数组复制的三种方法

    2014-11-30 12:57:30
    本文将给出三种实现数组复制方法 (以复制整数数组为例)。 方法一 : 循环遍历赋值达到复制数组的效果 帮助  /**  * 循环遍历赋值达到复制数组的效果  */ public static int[] copy1(int...
  • 数组常用方法和属性

    2018-01-31 23:12:43
    数组常用属性和方法 一、常用属性 1、length 使用length 应该注意的问题 (javascript 很容易因为length 的问题导致整个数组的长度修改) 1、对 arr 的length 赋值会导致 arr修改 例:  var arr1 = [1,3,5,14...
  • 常用数组方法总结

    2021-11-18 22:19:13
    # 添加/删除元素 - push(...items): 从结尾添加元素 - pop:从结尾弹出/提取元素 ...- slice(start,end): 它从所有元素的索引start开始复制到end,但是不包括end,并且返回一个新的数组; - concat(... items.
  • Java中数组复制的常见方法

    千次阅读 2019-05-23 17:44:00
    这个方法就灵活很多,不但可以复制数组,还可以任意复制一个数组中任意部分到另一个数组. 还可以合并两个数组(前提两个数组中其中一个数组可以容纳两个数组的所有元素. 参数解释 : src - 源数组。 srcPos - 源...
  • 常用数组和字符串的方法 常用的数组: pop 尾部删除一个元素 push 尾部添加一个元素 shift 开头删除一个元素 unshift 开头添加一个元素 serve 反转 contant 合并数组 splice 可增删改查 slice 复制 flat 将多维数组...
  • 数组常用方法

    2021-02-03 11:15:30
    数组常用方法:(这些方法是Arrays类下的) toString():将数组转换成一个字符串 sort():对数组进行升序排序 binarySearch():二分法查找数组中的元素,返回指定数组中指定元素对应的索引。使用前提:进行查找的是...
  • es6 js数组常用方法

    2019-11-19 19:48:04
    会改变自身的方法 1.array.push(element1, ...elementN) 添加一个或多个元素到数组的末尾,并返回数组新的长度 2.array.unshift(element1, ...elementN) 在数组的开头插入一个或多个元素,并返回数组的新长度 3....
  • toString()方法会返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串。 valueOf()返回的还是数组 join()传递参数以自定义分隔符 let arr = ["a", "b", 1, 3, 6] console.log(arr...
  • Dart数组常用方法

    千次阅读 2020-11-28 17:00:37
    一、数组的定义 1、定义固定类型数组 // 定义固定类型的数组 var list = List<int>(); print('$list - length: ${list.length}'); // 输出 [] - 0 复制代码 2、定义固定长度数组 var list2 = List(2); ...
  • (2)数组内部不含有引用类型,使用slice() 、concat() 和 assign() 方法都属于数组的深拷贝,一个数组变化,另一个数组不受影响。 (3)数组内部含有引用类型,使用slice() 、concat() 和 assign() 方法,非引用...
  • 四、pop()pop() 方法用于删除并返回数组的最后一个元素。返回最后一个元素,会改变原数组。五、shift()shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。返回第一个元素,改变原数组。六、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 172,770
精华内容 69,108
关键字:

常用的数组复制方法有