读书人

swap解决办法

发布时间: 2012-01-16 23:36:51 作者: rapoo

swap
class TestSwap
{
public static void swap(int a,int b){
int t=a;
a=b;
b=t;
}

public static void main(String args[]){
int x=2;
int y=3;
swap(x,y);
System.out.println(x);
}
}

这样的程序交换顺序后交换的结果不是保存不下来吗,怎样才能让x和y的值交换呢让输出结果为3呢

[解决办法]
[code=Java][/code]
public class TestSwap {


public static void main(String args[]) {

Integer a=new Integer(2);
Integer b=new Integer(3);

ObjectChange ob=new ObjectChange(a,b);
ob.change();
System.out.println("a= "+a.intValue()+" b="+b.intValue());
System.out.println("a= "+ob.getA()+" b="+ob.getB());

}
}

class ObjectChange{

private Integer a;
private Integer b;
public ObjectChange(Integer a, Integer b) {
super();
this.a = a;
this.b = b;
}

public Integer getA() {
return a;
}

public void setA(Integer a) {
this.a = a;
}

public Integer getB() {
return b;
}

public void setB(Integer b) {
this.b = b;
}

public void change(){
Integer temp;
temp=a;
a=b;
b=temp;

}
}
[解决办法]
Java中传参的方式是传值不传址,要实现swap函数也不是不可能,但很繁琐,最终写出的代码已经偏离这个函数的初衷
难怪有人戏称:“伟大的java就这么否决了swap函数”
[解决办法]
一般就使用数组方式,或者写一个辅助类,挺麻烦的.

读书人网 >J2SE开发

热点推荐