拷贝
拷贝是将一个数组里面的数复制到另一个数组里,首先是初始化两个数组,且一个里面放有数值,在进行拷贝时,应该考虑数组的长度,只有要拷贝的数组高度小于或等于被拷贝的数组长度时,数组才可以进行拷贝工作。
public class Array03 {
public static void main(String[] args){
int[] a=CreateData(10); //产生10个元素的一维数组
int[] b=new int[5]; //定义一个新的数组,其空间为5
Array01Copy(a,b);
for(int i=0;i<b.length;i++)
{
System.out.print(b[i]+"\t"); //开始进行拷贝
}
}
public static void Array01Copy(int[] a,int[] b) //void 类型不需要写return
{ //拷贝函数段
if(b.length<=a.length) // 拷贝的条件,即b的长度小于等于a的长度
{
for(int i=0;i<b.length;i++) //进行拷贝
{
b[i]=a[i];
}
}
}
public static int[] CreateData(int n) //产生一个随机数组
{
int[] a=new int[n];
for(int i=0;i<a.length;i++)
{
a[i]=(int)(Math.random()*10);
}
return a;
}
}
以上的代码是自己写的以写拷贝函数的方式进行拷贝,而在JAVA语言中,有自己的内库,即,System.arraycopy用import java.util.Arrays头文件进行调用而以上代码并没有显示出结果,而我们可以将拷贝之前和拷贝之后的数组中的数值分别打印出来,优化之后的代码为。
import java.util.Arrays;
public class Array03 {
public static void main(String[] args)
{
int[] a=CreateData(10); //产生10个元素的一维数组
System.out.println("原始数组显示:");
System.out.println(Array2str(a));
int[] b=new int[5];
System.arraycopy(a,0,b,1,2); //将a数组中的第i个值从第m个数拷贝给b数组第i个值(a,i,b,i,m)
System.out.println("目标数组显示:");
System.out.println(Array2str(b));
}
public static String Array2str(int[] a)
{
String str="";
for(int i=0;i<a.length;i++)
{
str+=a[i]+"\t";
}
return str;
}
ic static int[] CreateData(int n)
{
int[] a=new int[n];
for(int i=0;i<a.length;i++)
{
a[i]=(int)(Math.random()*10);
}
return a;
}
}