swap()的java实现

现在刚开始学习java。今天写一个swap,让我对java没有指针这个事情深有体会。

由于我想是把swap()当成一个函数来写,因此我尝试这样的方式。

private static void swap(int &a, int &b){
		int temp = a;
		a = b;
		b = temp;
}

  我发现在eclipse中是有错误的,java中的参数传递都是采用值传递的传递方式,因此不能使用引用符号。

     后面我发现可以使用重新赋值的方法:

private static int[] swap(int a, int b){
        int temp = a;
        a = b;
        b = temp;
        return new int[]{a,b};
}

//下面是主函数的实现
public static void main{
        int a = 4;
        int b = 6;
        
        int[] swap = swap(a,b);
        a = swap[0];
        b = swap[1];
        System.out.print(a + " ");
        System.out.print(b);
}        

但是我觉得使用这样的方式还是有点恼火,毕竟比较麻烦。于是我想到了外部内联的方式。

public class TestSwap {
    public static void main(String[] args){
        Exchange exc = new Exchange(2,3);
        exc.swap(exc);
        System.out.print(exc.i);
    }
}

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

使用这种方式能够简单的简明的实现这种方式。

通过这个简单的函数认识了java语言的特性。

 

 

 

posted @ 2012-12-19 11:18  繁星苑  阅读(3627)  评论(1编辑  收藏  举报