在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. jQuery - 拦截所有Ajax请求(统一处理超时、返回结果、错误状态码 )

    样例代码: <html> <head> <title>hangge.com</title> <meta charset="utf-8&q ...

  2. MySQL数据库~~~~~锁和事务

    一 锁 innodb存储引擎默认是行级锁 行级锁定最大的特点就是锁定对象的颗粒度很小,也是目前各大数据库管理软件所实现的锁定颗粒度最小的.由于锁定颗粒度很小,所以发生锁定资源争用的概率也最小,能够给予 ...

  3. 一次在CentOS系统单用户模式下使用passwd命令破密失败的案例

    某次遇到需要进入系统的单用户模式进行破密操作,结果却显示如下: 根据提示:Permission denied(缺少权限) 此时查看/usr/bin/passwd 权限: 正常情况下的权限应该是如下: ...

  4. MySQL数据库解决大数据量存储问题

    转载自:https://www.cnblogs.com/ryanzheng/p/8334915.html 提问:如何设计或优化千万级别的大表?此外无其他信息,个人觉得这个话题有点范,就只好简单说下该如 ...

  5. Django回顾--配置文件

    """ Django settings for meiduo_mall project. Generated by 'django-admin startproject' ...

  6. [译]Vulkan教程(11)Image Views

    Image views To use any VkImage, including those in the swap chain, in the render pipeline we have to ...

  7. 如何关闭jdk自动更新提示

    缘由 国庆将电脑重装了一下,jdk自然也就重装了,一开机总是提示我更新,索性就将他关掉. 解决办法 右键这个图标,点击属性. 将自动更新取消勾选.

  8. asp.net MVC通用权限管理系统-响应式布局-源码

    一.Angel工作室简单通用权限系统简介 AngelRM(Asp.net MVC Web api)是基于asp.net(C#)MVC+前端bootstrap+ztree+lodash+jquery技术 ...

  9. javaWeb技术第二篇之CSS、事件和案例

    <!--内联式 CSS (层叠样式表) 编辑 层叠样式表(英文全称:Cascading Style Sheets) CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式 ...

  10. 首个企业架构TOGAF角色扮演案例培训的诞生

    BangEA企业架构系列在不同机构做了不少TOGAF认证课,自己都觉得有点枯燥了,我在想我们IT帮2020年第一期的认证课是不是该换种授课方式呢?想到就做......TOGAF认证培训,最早主要就是讲 ...