int a,b如何实现swap(a,b)?
即使是把a,b封装成Integer也不行吧?这样虽然是swap()函数中reference变化了,可是主函数中得reference是不变的,那么我改如何实现swap呢

解决方案 »

  1.   

    a和b放在其他对象中做属性就行了。典型如用数组。
    swap(int[] a, int[] b){ //只用一个元素
      int temp = a[0];
      a[0] = b[0];
      b[0] = temp;
    }
      

  2.   

    a b本身就是基础类型变量,要通过函数传参来交换本体,是mission impossible啊
      

  3.   

    基本数据就一句话的事情,要用函数来做????
    最简单的一句话足以:a = (a+b)-(b=a);
      

  4.   

    java的参数传递的本质是值传递,具体介绍有本书里面说的比较详细,你可以看一下:《Effective Java》这本书,老外的。
      

  5.   

    所以java里面完不成swap这样的值交换的
      

  6.   

    完成不了
    Java传递的是引用的值,
    所以是一个引用的副本
    交换引用的副本不会改变原始引用
      

  7.   

    就算考虑溢出也是一句话的事情a = a^b^(b = a);这样总行了吧。