最基本的问题,c语言交换2个数的函数是:
swap(int *a,int *b)
{}
那么java里面没有指针,怎么交换两个数,可以是
swap(int &a,int &b)
{
  int t;
  t=a;
  a=b;
  b=a;
}
吧?

解决方案 »

  1.   

    java 里没有&来取引用。
    java里没办法像C一样交换2个数
    如果你实在是想实现,只好写个辅助类
    class X {
        public: int a;
        public: int b;
        public X(int a, int b) {this.a = a; this.b = b;}
    }...
    void swap(X x) {
        int t = x.a;
        x.a = x.b;
        x.b = t;
    }int a = 1;
    int b = 2;
    X x = new X(a, b);
    swap(x);
    a = x.a;
    b = x.b;……反正这事只能越搞越复杂
    一般交换两个数通常都在数组中进行,还是输入数组,和两个index比较好。
      

  2.   

    //java里,基本数据类型用的是值传递...
    //如果你要交换的话,就应该传对象进去.如:
    //好像是这样!
    class TestTwoInt 
    {
    public static void main(String[] args) 
    {
    myInt a=new myInt(10);
    myInt b=new myInt(20);
    swap(a,b);
    System.out.println("a:"+a+"  b:"+b);
    }
    public static void swap(myInt a,myInt b)
    {
    int temp=a.getInt();
    a.setInt(b.getInt());
    b.setInt(temp);
    }
    }
    class myInt
    {
    int a;
    myInt(int a)
    {this.a=a;}
    public int getInt(){return a;}
    public void setInt(int b){a=b;}
    myInt(myInt a)
    {this.a=a.getInt();}
    public String toString(){return ""+a;}
    }
      

  3.   

    如果这个交换方法和你要交换的a、b是在同一个类中(注:a、b为该类的成员数据),你可以这样做:
    swap()
    {
      int t;
      t=a;
      a=b;
      b=a;
    }
      

  4.   

    class demo {
      public static void swap(int a,int b)
       {     a=a+b;//
         b=a-b;//
         a=a-b;//不需要temp,也不需要辅助类     System.out.println("a="+a);
         System.out.println("b="+b);
       }  public static void main(String[] args)
      {
       demo.swap(3,4);
      }
    }
      

  5.   

    201同志,楼上讲的狠清楚了, 这么做不能交换的,
    退出demo.swap 后 还是没有交换
    Java是传值引用的
      

  6.   

    java值引用,要想交換2個數的值,每那麽簡單呀!!!
    public class Mugs
    {
    int m ,n;
    public void Exchange(int a, int b)
    {
    m=b;
    n=a;
    }
    public static void main(String agrs[])
    {
    Mugs ob = new Mugs();
    int m = 44;
    int n = 77;
    System.out.println("before exchange: m = " + m + ",  n = " + n);
    ob.Exchange(m, n);
    System.out.println("after exchange: m = " + ob.m + ",  n = " + ob.n);
    }
    };
    學習一下前人寫的。