在Java中有多种方法可以拷贝一个数组,到另外一个数组。

1.循环拷贝

在循环拷贝方法中,只需要利用i,移动指针即可复制所有数组到arrayB中。

for(int i=0;i<arrayA.length;i++)
{
arrayB[i] = arrayA[i];
}

2.clone

这种方法拷贝十分方便,仅仅需要声明一个数组变量,然后利用array.clone()即可拷贝到另外一个数组中。

int[] arrayB = arrayA.clone();

3.copyOf

(原始数组,拷贝长度)

Arrays.copyOf(arrayA,arrayA.legnth);

4.copyOfRange

(原始数组,开始位置,拷贝长度)

Arrays.copyOfRange(arrayA,0,arrayA);

5.arraycopy

(原始数组,原始数组开始位置,目标数组,目标数组开始位置,拷贝长度)

System.arraycopy(arrayA,0,arrayB,0,arrayA.length);

总代码:

import java.util.Arrays;

public class copyArray {
public static void main(String[] args)
{
int[] arrayA = {2,4,6,7,10};
int[] arrayB = new int[arrayA.length+1];
copy(arrayA,arrayB);
} public static void copy(int[] arrayA,int[] arrayB)
{
//第一种:循环拷贝
for(int i=0;i<arrayA.length;i++)
{
arrayB[i] = arrayA[i];
} System.out.println(Arrays.toString(arrayB)); //浅拷贝
//第二种:parameters:开始数组,起始复制位置;目的数组,目的复制位置;复制的长度。
System.arraycopy(arrayA,0,arrayB,0,arrayA.length);
System.out.println(Arrays.toString(arrayB));
//浅拷贝
//第三种:原始数组,拷贝长度;
arrayB = Arrays.copyOf(arrayA,arrayA.length);
System.out.println(Arrays.toString(arrayB));
//第四种:
arrayB = Arrays.copyOfRange(arrayA,0,arrayA.length);
System.out.println(Arrays.toString(arrayB));
//第五种: arrayB = arrayA.clone();
System.out.println(Arrays.toString(arrayB)); } }

References:

ava - 数组拷贝的几种方式

Java数组拷贝的五种方法的更多相关文章

  1. Java 多线程同步的五种方法

    一.引言 闲话不多说,进入正题. 二.为什么要线程同步 因为当我们有多个线程要同时访问一个变量或对象时,如果这些线程中既有读又有写操作时,就会导致变量值或对象的状态出现混乱,从而导致程序异常.举个例子 ...

  2. java实例化对象的五种方法

    1.用new语句创建对象,这是最常见的创建对象的方法. 2.通过工厂方法返回对象,如:String str = String.valueOf(23); 3.运用反射手段,调用java.lang.Cla ...

  3. java中创建对象的五种方法

    用最简单的描述来区分new关键字和newInstance()方法的区别:newInstance: 弱类型.低效率.只能调用无参构造.new: 强类型.相对高效.能调用任何public构造. newIn ...

  4. Java 字符串拼接 五种方法的性能比较分析 从执行100次到90万次

    [请尊重原创版权,如需引用,请注明来源及地址] > 字符串拼接一般使用“+”,但是“+”不能满足大批量数据的处理,Java中有以下五种方法处理字符串拼接,各有优缺点,程序开发应选择合适的方法实现 ...

  5. java:JavaScript2:(setTimeout定时器,history.go()前进/后退,navigator.userAgent判断浏览器,location.href,五种方法获取标签属性,setAttribute,innerHTML,三种方法获取form表单信息,JS表单验证,DOM对象,form表单操作)

    1.open,setTimeout,setInterval,clearInterval,clearTimeout <!DOCTYPE> <html> <head> ...

  6. Java:判断字符串是否为数字的五种方法

    Java:判断字符串是否为数字的五种方法 //方法一:用JAVA自带的函数 public static boolean isNumeric(String str){ for (int i = str. ...

  7. Java获取随机数的几种方法

    Java获取随机数的几种方法 .使用org.apache.commons.lang.RandomStringUtils.randomAlphanumeric()取数字字母随机10位; //取得一个3位 ...

  8. 数组复制的五种方式(遍历循环一一赋值、System.arraycopy、地址赋值、克隆clone()、Arrays.copyof())

    package com.Summer_0424.cn; import java.util.Arrays; import java.util.concurrent.CopyOnWriteArrayLis ...

  9. (转)Java结束线程的三种方法

    背景:面试过程中问到结束线程的方法和线程池shutdown shutdownnow区别以及底层的实现,当时答的并不好. Java结束线程的三种方法 线程属于一次性消耗品,在执行完run()方法之后线程 ...

随机推荐

  1. ORA-00904:"WM_CONCAT":标识符无效

    原创 Oracle 作者:Root__Liu 时间:2019-11-21 18:49:27  514  0 今天客户现场业务甩给我一个报错让处理,ora-00904:"WM_CONCAT&q ...

  2. 一个MongoDB索引走偏的案例及探究分析

    接业务需求,有一个MongoDB的简单查询,太耗时了,执行了 70S 左右,严重影响用户的体验.. 查询代码主要如下: db.duoduologmodel.find({"Tags.SN&qu ...

  3. 如何写一个Python万能装饰器,既可以装饰有参数的方法,也可以装饰无参数方法,或者有无返回值都可以装饰

    Python中的装饰器,可以有参数,可以有返回值,那么如何能让这个装饰器既可以装饰没有参数没有返回值的方法,又可以装饰有返回值或者有参数的方法呢?有一种万能装饰器,代码如下: def decorate ...

  4. pytorch 中改变tensor维度的几种操作

    具体示例如下,注意观察维度的变化 #coding=utf-8 import torch """改变tensor的形状的四种不同变化形式""" ...

  5. C语言中,关于相除的问题

    若定义的类型是 整数型:int a,b ;则a/b的值为整数的,不会带着小数点的..... 若定义的数据类型是 浮点型的 :double a,b; 则这种情况下,得到的结果与数学结果无异

  6. Docker和ASP.NET Core

    Docker和ASP.NET Core Docker 正在逐渐成为容器行业的事实标准,受到 Windows 和 Linux 生态系统领域最重要供应商的支持. (Microsoft 是支持 Docker ...

  7. Git教程---由浅入深

    初学者很难找到一个由浅入深,学完后能立刻上手的Git教程 Git用户 V&Git专家 Git是一个工具,是目前世界上最先进的分布式版本控制系统(没有之一). 集中式的版本控制系统  V& ...

  8. java大数习题

    大数加法,题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1002 import java.math.BigInteger; import java.ut ...

  9. 小程序 if else

    与js略有差异 (1).js中的数据 (2) .wxml  中的数据判断 (3)结果显示

  10. Python3字典update()方法

    描述 Python字典update()函数把字典参数dict2的key/value(键/值)对更新到字典dict里. update()方法语法: dict.update(dict2) 参数 dict2 ...