• 数组复制(java)


    注意
    在Java中直接等于,如:

    int[] num = new int[10];
    int[] res = new int[10];
    res = num;
    
    • 1
    • 2
    • 3

    复制的是地址,两个数组共同使用一个内存,当一个数组进行修改时,另一个数组的值也会发生变化。

    在Java中,数组是一种用于存储固定大小的元素集合的数据结构。有时候我们需要将一个数组的内容复制到另一个数组中,Java提供了多种方法来实现这个目的。

    一维数组

    1. 使用循环进行逐个元素复制

    最简单的方法是使用循环遍历原始数组,并将每个元素逐个复制到新数组中。这种方法需要手动编写代码来复制每个元素,适用于简单的情况。

    for (int i = 0; i < num.length; i++) {
    	res[i] = num[i];
    }
    
    • 1
    • 2
    • 3

    这种方法适用于任何类型的数组,包括基本类型和引用类型。

    2. 使用Arrays类的copyOf方法

    Java提供了Arrays类,其中包含许多有用的数组操作方法。其中一个是copyOf方法,可以使用它来复制数组的指定部分或整个数组。

    该方法将源数组的内容复制到一个新数组中,并返回该新数组。如果需要复制数组的一部分,可以指定起始和结束位置。

    Arrays.copyOf(原数组, 目标数组长度);

    res = Arrays.copyOf(num, num.length);
    
    • 1

    3. 使用System类的arraycopy方法

    除了Arrays类的copyOf方法外,Java还提供了System类的arraycopy方法,可以在原始数组和目标数组之间高效地复制数组的内容。

    该方法的参数分别为源数组、源数组的起始位置、目标数组、目标数组的起始位置以及要复制的元素数量。

    System.arraycopy(原数组,开始位置,目标数组,开始位置,复制长度);

    System.arraycopy(num, 0, res, 0, num.length);
    
    • 1

    二维数组

    二维数组与一维数组类似。

    1. 使用循环进行逐个元素复制

    最简单的方法是使用循环遍历原始数组,并将每个元素逐个复制到新数组中。这种方法需要手动编写代码来复制每个元素,适用于简单的情况。

    for (int i = 0; i < num.length; i++) {
    	for (int j = 0; j < num[i].length; j++) {
    		res[i][j] = num[i][j];
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    这种方法适用于任何类型的数组,包括基本类型和引用类型。

    2. 使用Arrays类的copyOf方法

    Java提供了Arrays类,其中包含许多有用的数组操作方法。其中一个是copyOf方法,可以使用它来复制数组的指定部分或整个数组。

    该方法将源数组的内容复制到一个新数组中,并返回该新数组。如果需要复制数组的一部分,可以指定起始和结束位置。

    Arrays.copyOf(原数组, 目标数组长度);

    for (int i = 0; i < num.length; i++) {
    	res[i] = Arrays.copyOf(num[i], num[i].length);
    }
    
    • 1
    • 2
    • 3

    3. 使用System类的arraycopy方法

    除了Arrays类的copyOf方法外,Java还提供了System类的arraycopy方法,可以在原始数组和目标数组之间高效地复制数组的内容。

    该方法的参数分别为源数组、源数组的起始位置、目标数组、目标数组的起始位置以及要复制的元素数量。

    System.arraycopy(原数组,开始位置,目标数组,开始位置,复制长度);

    for (int i = 0; i < num.length; i++) {
    	System.arraycopy(num[i], 0, res[i], 0, num[i].length);
    }	
    
    • 1
    • 2
    • 3

    总结

    简单介绍了Java中数组复制的三种方法。
    使用循环进行逐个元素复制适用于简单的情况,而使用Arrays类的copyOf方法System类的arraycopy方法可以提供更便捷和高效的复制功能。
    根据实际需求选择适合的方法来对数组进行复制,可以提高代码的效率和可读性。

  • 相关阅读:
    竞争与冒险 毛刺
    非对称加密(RSA)详解
    浏览器黑暗模式插件
    【Linux】jdk、tomcat、MySQL环境搭建的配置安装,Linux更改后端端口
    python数据容器——元组、字符串
    基于javaweb的宠物医院与商城一体的系统(java+springboot+jsp+mysql)
    玩转TypeScript之玩转数组(完整版)
    《算法系列》之树
    基于LDABPSO算法的烟叶复烤配方关联特征挖掘
    【EI会议征稿】2023年智能科学与计算机工程国际学术会议(ISCE 2023)
  • 原文地址:https://blog.csdn.net/m0_65144570/article/details/132912398