日期:2014-05-20  浏览次数:20703 次

弱问java中如何写一个swap函数呢?
交换两个int在c++中可以写:
void   swap(int*   x,   int*   y)
{   int   temp;
    temp=*x;
    *x=*y;
    *y=temp;}
但java中没有引用和指针,要完成同样的功能应该怎样写呢?


------解决方案--------------------
哦...我没看清楚问题..
这涉及的是JAVA中值传递的问题....由于基本类型是值传递...直接swap不可以
要么用INT数组传递引用...要不通过外部内联的方式


public class Test {
public static void main(String[] args) {

Test t = new Test(1,2);

System.out.println( "i: " + t.i);
System.out.println( "j: " + t.j);

t.swap();

System.out.println( "Swapped! ");
System.out.println( "i: " + t.i);
System.out.println( "j: " + t.j);
}
int i,j;

public Test(int i,int j){
this.i = i;
this.j = j;
}
public void swap() {
int temp;
temp = i;
i = j;
j = temp;
}
}