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语言的特性。