黑马程序员技术交流社区
标题:
调用System.库函数复制数组(完成)
[打印本页]
作者:
王琪
时间:
2014-2-27 21:46
标题:
调用System.库函数复制数组(完成)
本帖最后由 王琪 于 2014-2-27 23:31 编辑
<b>public class java {
static int []s={1,2,3};
static void fun2(int [] a){
int [] b={4,5,6};
int [] c={7,8,9};
a=c;
}
public static void main(String[]args){
fun2(s);
System.out.println(s);
}
void bain(int [] a,int [] c){
for(b:a){
b=
}
}
}</b>
复制代码
作者:
flying
时间:
2014-2-27 22:50
void bain(int [] a,int [] c){
for (int i = 0; i < a.length; i++) {
c[i]=a[i];
}
}
作者:
王琪
时间:
2014-2-27 23:25
flying 发表于 2014-2-27 22:50
void bain(int [] a,int [] c){
for (int i = 0; i < a.length; i++) {
c=a;
看来只能用一个一个拷贝了 谢谢你
看来java 地址的应用我还是不太会:)
作者:
王琪
时间:
2014-2-27 23:27
这个是我找到的
/*
java 数组的操作 System类的arraycopy静态函数用于数组拷贝 数组是不能越界的
对象数组的复制实际上是复制的引用的拷贝 也就是对象的地址
*/
class Point
{
int x;
int y;
Point(int x,int y)
{
this.x=x;
this.y=y;
}
}
class Test
{
public static void main(String []args)
{
/*int a[]=new int[]{1,2,3,4,5};
int b[]=new int[5];
System.arraycopy(a,0,b,0,a.length); //5个参数 原数组 起始index 数组2 起始index 拷贝长度
for(int n=0;n<b.length;n++)
{
System.out.println(b[n]);
}
*/
Point a[]=new Point[]{new Point(1,2),new Point(3,4),new Point(3,9)};
Point b[]=new Point[3];
System.arraycopy(a,0,b,0,3); //拷贝的是对象的引用 修改拷贝一样会修改原来数据
for(int n=0;n<a.length;n++)
{
System.out.println("x="+b[n].x+",y="+b[n].y);
}
//对拷贝进行修改会修改原来数据
b[1].x=9;
b[2].x=5;
b[0].x=7;
for(int n=0;n<a.length;n++)
{
System.out.println("x="+a[n].x+",y="+a[n].y);
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2