栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

数组拷贝的四种方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数组拷贝的四种方法

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));//此时直接打印即可;
        
    }
​
}
​
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/605672.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号