大家好,欢迎来到IT知识分享网。
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<a.length;i++){
//拷贝a数组到目标数组arr
arr[i]=a[i];
}
for(int j=0;j<b.length;j++){
//拷贝b数组到目标数组arr
arr[a.length+j]=b[j];
}
for(int i=0;i<arr.length;i++){
//输出目标数组
System.out.print(arr[i]+" ");
}
}
}
IT知识分享网
实际在java中可用java.util.Arrays.copyOf(源数组名称,新数组长度)命令直接实现数组扩容。
IT知识分享网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<B.length;x++){
result[A.length+x]=B[x];
}
for(int i:result){
System.out.print(i+" ");
}
System.out.print("");//换行
}
}
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<B.length;x++){
// result[A.length+x]=B[x];
// }
for(int i:result){
System.out.print(i+" ");
}
System.out.print("");
}
}
上述讲到的是java中数组拷贝的模拟实现和自行实现语句,那么既然有数组完整拷贝肯定也就有数组部分拷贝。所以数组部分拷贝的语句是
IT知识分享网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("");
}
}
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/7471.html