今日代码:Java数组拷贝的四种方法

Java - 数组拷贝

编程软件:IEDA

学习总结:
① 数组的拷贝大致有四种方式:

  • for

  • Arrays.copyOf

  • System.arraycopy

  • clone()克隆:产生了这个对象的一个副本 这个方法是object的克隆方法

    object:所有类的父亲,祖先

② 数组的拷贝分为两种类型:

  • 浅拷贝:如果array2修改自己的值不影响array1,就是浅拷贝。eg:数组存放简单类型,把值拿过来修改,不影响array1,即浅拷贝

  • 深拷贝:如果array2修改自己的值会影响array1,就是深拷贝。eg:若数组存放引用类型,把地址拿过来,地址指向一个值,修改地址即修改值,即深拷贝

代码
1.for()

//1.for
     public static int[] copyArray(int[] array) {
         int[] ret =new int[array.length];//new一个新的数组ret
         for (int i = 0; i < array.length; i++) {
             ret[i] = array[i];//让数组ret里每位相同下标的元素和数组array里相同
         }
         return ret;
     }
    public static void main(String[] args) {
        
         int[] array = {1,2,3,4,5,6,7};
         int[] ret = copyArray(array);//调用函数
         System.out.println(Arrays.toString(ret));//Arrays.toString(ret)将数组以字符串的形式表示
    }

2.Arrays.copyOf

//2.Arrays.copyOf
 public static void main(String[] args) {
        
        int[] array = {1,2,3,4,5,6,7};
        int[] ret = Arrays.copyOf(array,array.length);//直接调用Array工具类中的copyOf,(copy的数组,数组的长度)
        System.out.println(Arrays.toString(ret));
    }

3.arraycopy

//3.System.arraycopy
public static void main(String[] args) {
        
        int[] array = {1,2,3,4,5,6,7};
        int[] ret = new int[array.length];
        System.arraycopy(array,0,ret,0,array.length);//直接调用Array工具类中的arraycopy
        //public static native void arraycopy(Object src,  int  srcPos,  Object dest,   int destPos,   length);
        // native c/c++实现的,速度快             源数组    开始存放的位置     目的地       拷到哪个位置  拷贝的长度*/

        System.out.println(Arrays.toString(ret));

4.clone()

//4.clone()
public static void main(String[] args) {
        
        int[] array = {1,2,3,4,5,6,7};
        int[] ret = array.clone();//array.下就有clone(),直接选择
        System.out.println(Arrays.toString(ret));

以上就是数组拷贝的四种方式

发布了27 篇原创文章 · 获赞 1 · 访问量 968

猜你喜欢

转载自blog.csdn.net/PhoenixZi/article/details/105634560
今日推荐