数组拷贝的四种方法

数组拷贝的四种方法,第1张

数组拷贝的四种方法
import java.util.Arrays;
​

        //以下的代码  主要是关于数组复制的四种方法的讨论
public class P_11_27 {
    public static int [] copy(int [] array){
        int [] copy = new int[array.length]; // new一个新的数组的长度等于原来的数组  若长度大于后面是 “0”  若小于则会损失
        for (int i = 0; i < array.length; i++) { // 对数组进行遍历
            copy [i] = array[i];          //  赋值
        }
        return copy;  // 将替换好的数组进行返回
    }
//第一种采用自己写的一个来进行  复制
    public static void main1(String[] args) {
        int [] array = { 1 , 2 , 3 , 4 , 5 , 6 };
        int [] ret =   copy(array);       //  见一个新的变量  来接收返回值;
        System.out.println(Arrays.toString(ret)); // 采用Arrays.toString 的方式来进行数组的打印
    }
    //第二种方式直接进行函数的调用 利用Java所带的  数组的拷贝工具
    // Arrays.copyOf(arrray,array.length)     而这个数组的长度的值可以被改变  改变之后参考上一个函数
    public static void main2(String[] args) {
        int [] array = { 1 , 2 , 3 , 4 , 5 , 6 };
        int []  ret  = Arrays.copyOf(array ,array.length);
        int [] ret2 = Arrays.copyOfRange(array,1,5);// 代表的按照下标进行复制 range 你懂得
        System.out.println(Arrays.toString(ret));
    }
    // 第三种方式直接使用 arraycopy(object src , int srcpos , object dest , int destpos ,array.length)
    //src : 你要拷贝的数组;
    //srcpos:你所要拷贝的数组,所想要开始的下标。
    //dest:  目标函数;  destpos 的含义 pos 与上面的对应 则可完整的复制 当然也可以进行更改
    //注意此时的函数长度 必须与原函数的长度相等  否则会进行报错。
    //destpos 之中有一个 native 方法叫做本地方法 这个方法是由c++进行编写不可以查看源代码 速度非常之快;
//    public static native void arraycopy (Object src, int srcPos,Object dest , int destPos
//                                           int array.legth);
​
    public static void main3(String[] args) {
        int [] array ={ 1 , 2 , 3 , 5 } ;
        int [] copy = new int[array.length];
        System.arraycopy(array,0,copy,0,array.length);
        System.out.println(Arrays.toString(copy));
    }
    //第四种的方式  clone 方式
    public static void main(String[] args) {
        int [] arr ={ 1 , 2 , 3 ,  } ;
        int [] copy = arr.clone();//此时相当于将目标的数组的地址进行备份;并且需要一个新的变量来接收新的地址
        System.out.println(Arrays.toString(copy));//此时直接打印即可;
        
    }
​
}
​

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zaji/5611817.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-15
下一篇2022-12-15

发表评论

登录后才能评论

评论列表(0条)

    保存