java 数组的复制

java数组的复制分为数组地址的复制和值的复制

地址的复制:

int []arrA={11,22,33,44};
        //创建一个数组
        int [] arrB=new int[5];
        System.out.println("拷贝地址(引用)之前");
        System.out.println("arrA="+arrA);
        System.out.println("arrB="+arrB);

        //引用的拷贝
        arrB=arrA;
        System.out.println("拷贝地址(引用)之后 ");
        System.out.println("arrA="+arrA);
        System.out.println("arrB="+arrB);

值的复制:

int [] arrA={11,22,33,44};
        int [] arrB=new int[5];
        //复制
        /*arrB[0]=arrA[0];
        arrB[1]=arrA[1];
        arrB[2]=arrA[2];
        arrB[3]=arrA[3];*/
        System.out.println("赋值之前");
        for(int i=0;i<arrB.length;i++){
            System.out.print(arrB[i]+"\t");
        }
        //两个数组的长度的最小值
        int length=Math.min(arrA.length, arrB.length);
        for(int i=0;i<length;i++){
            arrB[i]=arrA[i];
        }
        //遍历arrB数组
        System.out.println("\n赋值之后");
        for(int i=0;i<arrB.length;i++){
            System.out.print(arrB[i]+"\t");
        }

System类中的 arraycopy(…)方法 

        int [] arrA={11,22,33,44};//源数组
        int [] arrB=new int[5];//目标数组

        System.out.println("数组拷贝之前");
        for(int num:arrB){
            System.out.print(num+"\t");
        }
        //拷贝
        System.arraycopy(arrA, 0, arrB, 1, 2);  //从arrA从下标0开始拷贝,拷贝给arrB从下标1开始,拷贝的长度为2 arrB的元素为[0,11,22,0,0]

        System.out.println("\n数组拷贝之后");
        for(int num:arrB){
            System.out.print(num+"\t");
        }            

原文地址:https://www.cnblogs.com/eyjdbk/p/11026802.html

时间: 2024-07-31 13:13:30

java 数组的复制的相关文章

Java 数组元素复制的三种方法

一.将数组元素逐个复制到目标数组中 例1 //源数组 int[] source = {10,30,20,40}; //目标数组 int[] target = new int[source.length]; for (int i = 0;i < source.length;i++){ target[i] = source[i]; } 二.使用System类的arraycopy()方法 public static void arraycopy(Object src,int srcPos,Object

Java数组的复制Arrays.copyOf()和System.arraycopy()函数

public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length); arraycopy是个本地方法,无返回值. public static <T,U> T[] copyOf(U[] original, int newLength, Class<? extends T[]> newType) { T[] copy = ((Object)newType ==

java中数组的复制

数组复制使我们在编程过程中常常要使用到的,在java中数组复制我们大概可以分为两种,一种是引用复制,另一种就是深度复制(复制后两个数组互不相干). 下面我们就通过测试的方法来详细看看什么是引用复制和深度复制. 引用复制: 顾名思义就是其值是引用的,值得改变会随着被引用的对象改变. System.out.println("引用复制-----------------------------"); int[] e = {1,2,3,4,56,7,8}; int[] f = e; for(in

java数组对象的复制

一.首先,区分数组间的赋值 1 import java.util.Arrays; 2 public class Array { 3 public static void main(String[] args) 4 { 5 int[] array = new int[]{0, 1, 2, 3}; 6 int[] arr = array; //书组赋值 7 System.out.println(Arrays.toString(array)); //输出array 8 System.out.print

java:数组复制

在java中实现数组的复制有很多种方法,可以使用循环给数组赋值达到复制的效果,其实java自带了一个方法可以实现数组的复制 System.arraycopy(a,a_index,b,b_index,length); 参数介绍: a:数组源的名字 a_index:从数组源中的哪个下标起始开始复制 b:目的数组的名字 b_index:接收到的复制内容在目的数组中插入的位置 举个例子: int[] a = {1,2,3}; int[] b = new int[3] ; System.arraycopy

数组的复制(test2.java、test3.java)

对于数组的复制,在最开始的时候最容易犯的一个错误,那就是自己认为的申请一个数组,然后将已存在的数组赋值到新申请数组名上,这样是错误的,这样仅仅是将数组的地址复制了过去,并不是,将数组内的元素拷贝过去,这样的复制在C\C++中叫做浅拷贝. 同样话不多说,上代码. 一个典型的错误例子(test2.java): ------------------------------------------------------------------------------- public class tes

Java小练习 数组的复制,反转及查找(线性,二分)

/* 算法: 数组的复制,反转,查找(线性查找,二分查找) */ import java.util.Scanner; public class arrayCopyReverseSearch { public static void main(String[] args) { String[] arr = new String[]{"AA", "BB", "CC", "DD", "EE", "FF&

高级的数组的复制(test4.java)

这里指的高级,并不是过么高大上,而是说我们可以调用系统函数,直接对数组进行复制,并且这个函数的强大并不止局限于,对数组的复制,而且可以对数组进行截取,在指定位置插入或删除某个元素. 本篇只介绍数组的复制,其他的操作将在后续文章中进行阐述. 将一个数组复制到另一个数组去,采用 System.arrycopy() 方法的参数说明: System.arrycopy(from,fromstart,to,tostart,count) 1 //将A数组值复制到B数组中 2 3 public class te

我的Java——数组(3)

数组与增强的for语句 在JDK 1.5中,对于for语句进行了增强 因此在遍历数组的元素时更方便 基本格式:它在for语句中使用一个类型名 一个变量名 一个冒号 一个数组名 int []num={1,2,3,4,5} for(int n:num){ System.out.println(n); } 这样的遍历只得取得其中的元素 无法改变元素 数组的复制 System.copyarray()方法可以用来复制数组 其格式是 System.arraycopy(Object src,int src_p