美文网首页
2.数组的复制

2.数组的复制

作者: _少年不知愁 | 来源:发表于2018-08-22 10:31 被阅读0次

1.System.arraycopy
底层提供的方法,所以该方法native修饰

   /*
    *
    * @param      src      the source array. 复制对象
    * @param      srcPos   starting position in the source array. 复制数据起始位置
    * @param      dest     the destination array. 目标数组
    * @param      destPos  starting position in the destination data. 目标数组起始位置
    * @param      length   the number of array elements to be copied. 复制个数
    * @exception  IndexOutOfBoundsException  if copying would cause
    *               access of data outside array bounds.
    * @exception  ArrayStoreException  if an element in the <code>src</code>
    *               array could not be stored into the <code>dest</code> array
    *               because of a type mismatch.
    * @exception  NullPointerException if either <code>src</code> or
    *               <code>dest</code> is <code>null</code>.
    */
   public static native void arraycopy(Object src,  int  srcPos,
                                       Object dest, int destPos,
                                       int length);

2.简单实现数组复制

    public static void main(String[] args) {
        Integer[] a = new Integer[]{1, 2, 3, 4};
        Integer[] a1 = new Integer[3];
        //从a下标1开始复制3个
        System.arraycopy(a, 1, a1, 0, a1.length);
        System.out.println(Arrays.asList(a1));
    }

输出结果

[2, 3, 4]

3.删除指定数组下标的元素

    public static void main(String[] args) {
//        Integer[] a = new Integer[]{1, 2, 3, 4};
//        Integer[] a1 = new Integer[3];
//        //从a下标1开始复制3个
//        System.arraycopy(a, 1, a1, 0, a1.length);
//        System.out.println(Arrays.asList(a1));
        Integer[] a = new Integer[]{1, 2, 3, 4};
//        System.arraycopy(a, 1, 1, 1, a.length - 1);
//        a[a.length - 1] = null;
        deleteIndex(a, 0);
        System.out.println(Arrays.asList(a));
    }

    public static void deleteIndex(Integer[] arr, int index) {
        int number = arr.length - 1 - index;
        System.arraycopy(arr, index+1, arr, index , number);
        System.out.println(Arrays.asList(arr));
        arr[arr.length - 1] = null;
    }

输出结果:

[2, 3, 4, 4]
[2, 3, 4, null]

相关文章

  • 2.数组的复制

    1.System.arraycopy底层提供的方法,所以该方法native修饰 2.简单实现数组复制 输出结果 3...

  • ES6小技巧之三个点

    1.复制数组 2.将arguments转换为数组

  • 关于数组的深复制浅复制

    数组使用copy和MutableCopy复制: 1.不可变数组+copy=浅复制 2.不可变数组+mutableC...

  • 扩展运算符(...)相关笔记

    1.复制数组(真正的复制,效果等同于Array.from()) 2.一般用法案例 3.将类数组转换成数组 4.将字...

  • nodejs扩展运算符的应用

    nodejs复制数组,合并数组 1、复制数组: 数组是符合的数据类型,直接复制的话,只是复制了指向底层数据结构的指...

  • es6之复制数组

    es5数组复制 es6数组复制

  • JavaScript的一些小的书写习惯

    1.创建对象,数组 2.不明确数组长度追加内容要用 push 3.复制数组时使用slice 4.使用slice将类...

  • 对数器

    数组排序对数器 1.java有自己的数组复制方法和比较方法,要先导入java.util.Arrays包; 2.生成...

  • es6 - 数组

    一、应用 1.复制数组 2.合并数组 3.与解构赋值结合使用 4.将字符串转换为数组 5.实现了 Iterator...

  • 浅析iOS的浅复制与深复制

    原文:浅析iOS的浅复制与深复制 最近同事问我一个问题:原数组A,进行复制得到数组B,改变数组B的Person元素...

网友评论

      本文标题:2.数组的复制

      本文链接:https://www.haomeiwen.com/subject/qgreiftx.html