java数组拼接

JAVA数组拼接(扩容)

int[] A=new int[]{1,3,5,7,9}; int[] B=new int[]{2,4,6,8,10}; arrayJoin(A,B); } public static void arrayJoin(int[] a,int[] b){ int[] arr=new int[a.length+b.length]; //开辟新数组长度为两数组之和 for(int i=0; i

【java数组拼接】java数组拼接
文章图片

实际在java中可用java.util.Arrays.copyOf(源数组名称,新数组长度)命令直接实现数组扩容。
public class Day12_2{ public static void main(String[] args){ int[] A=new int[]{1,3,5,7,9}; int[] B=new int[]{2,4,6,8,10}; int[] result=java.util.Arrays.copyOf(A,10); //使result数组长度为10,并将A数组拷贝至新数组,此时result数组与原数组不是同一块内存,原来的内存还是5个元素,result的是扩容后的空间 for(int x=0; x

java数组拼接
文章图片

public class Day12_2{ public static void main(String[] args){ int[] A=new int[]{1,3,5,7,9}; int[] B=new int[]{2,4,6,8,10}; int[] result=java.util.Arrays.copyOf(A,10); //动态扩容,数值为java int默认值0 // for(int x=0; x

java数组拼接
文章图片

上述讲到的是java中数组拷贝的模拟实现和自行实现语句,那么既然有数组完整拷贝肯定也就有数组部分拷贝。所以数组部分拷贝的语句是
System.arraycopy(源数组名称,源数组开始点,目标数组名称,目标数组开始点,拷贝长度)

但一定要注意的是目标数组拷贝位置确定后是连续拷贝的。
public class Day12_2{ public static void main(String[] args){ int[] A=new int[]{1,2,3,4,5,6,7,8}; int[] B=new int[]{22,102,45,34,67,89,122}; System.arraycopy(B,2,A,4,3); //源数组为B(将数组B部分元素拷贝至A数组),拷贝起始点下标为2,即从45开始拷贝;A数组拷贝开始点为下标为4,即从5开始更改数组内容,拷贝长度为3 for(int i:A){//用foreach语句输出数组A System.out.print(i+" "); } System.out.print(""); } }

java数组拼接
文章图片

    推荐阅读