public static void main(String[] args) {
int[] a = {1,3,5,7};
int[] b = {2,4,6,8};
int[] temp = a;
a = b;
b = temp;
}
你可以在方法内直接交换引用,但你不能通过函数调用交换,何况你那个交换函数还是错误的
int[] a = {1,3,5,7};
int[] b = {2,4,6,8};
int[] temp = a;
a = b;
b = temp;
}
你可以在方法内直接交换引用,但你不能通过函数调用交换,何况你那个交换函数还是错误的
解决方案 »
- 中国航天大事记
- 构造函数的用处是什么啊?
- Java的批处理如何返回一个以上的值
- 我想在MYSQL建数据库,但是如何在java程序里新建,同时在这新建的数据库里面建立表,我是新手,请高手指教!急,线上等!
- 蔡鸟问题:如何用java连接Sql Server
- 键盘事件,一个很奇怪的问题,高手指点一下~~~~~~
- WINDOWS XP的环境变量在哪里设置?
- 我的tomcat装在win2000 个人版可以用吗?jdk1.4可以安装在个人版上用吗?
- 緊急求救,謝謝
- 如何使用j2sdk1.4.0
- 求助,为什么覆写的paintComponent没调用?
- Java屌丝求帮忙:请高手帮忙修改一个“截图功能”的优化调用效果.
public static void main(String[] args) {
int a[] = {1,3,5,7};
int b[] = {2,4,6,8};
change(a,b);
System.out.println(a[0]+".."+b[0]);
}
public static void change(int a[], int b[]){
int temp[] =a;
a = b;
b = temp;
System.out.println(a[0]+".."+b[0]);
}
}
尼玛!我也是初学!想了半天!我知道问题所在了!但是改还没想好呢!问题就是调用方法的时候!change(a,b);和方法的参数列表change(int a[],int b[]) 其实是 int a[]=a;b.....这就代表又新建了一个数组a[]
int[] a = {1,3,5,7};
int[] b = {2,4,6,8};
change(a, b);
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
System.out.println();
}
for (int i = 0; i < b.length; i++) {
System.out.println(b[i]+ " ");
}
}
public static void change(int[] a, int[] b){
int[] temp = new int[4];
for (int i = 0; i < a.length; i++) {
temp[i] = a[i];
a[i] = b[i];
b[i] = temp[i];
}
}
}楼上说的System.arraycopy好像是数组的复制吧。
public class SwapArray{
public static void main(String[] args){
int[] a={1,2,3,4};
int[] b={2,3,4,5};
swop(a,b);
System.out.println(Arrays.toString(a));
System.out.println(Arrays.toString(b)); }
public static void swop(int[] a,int[] b){
int[] temp=new int[a.length];
System.arraycopy(a,0,temp,0,a.length);
System.arraycopy(b,0,a,0,b.length);
System.arraycopy(temp,0,b,0,temp.length);
}
}使用数组一定要注意数组存放元素的个数是固定的,所以交换的时候两个数组的长度要相同,不然运行会报错:java.lang.ArrayIndexOutOfBoundsException如何解决交换数组而不用担心索引越界的问题?
int[] b = new int[]{5, 6, 7, 8, 9};
int[] temp = null;
temp = a;
a = b;
b = temp;
int[] b = new int[]{5, 6, 7, 8, 9};
int[] temp = null;
temp = a;
a = b;
b = temp;
for(int i=0;i<a.lenght;i++){
int temp=a[i];
a[i]=b[i];
b[i]=temp;
}