1. 程式人生 > >如何在Java中實現將兩個數相互交換的方法

如何在Java中實現將兩個數相互交換的方法

        在C/C++中,我們可以利用指標或引用來解決問題,比如一下的C程式碼:

void swap(int*a, int*b)
{
        
int  temp  =*a;
        
*a  =*b;
        
*b  =  temp;
}

或是以下C++程式碼:

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

但是要在Java中實現這個功能就比較麻煩。

不妨大家可以先試試。

        我下面就貼出自己實現這個功能的方法:


class WrappedNumber<extends Number>{
    
    
private T i =null;
    
    
public WrappedNumber(T i) {
        
this.i = i;
    }

    
    
public T getNumber() {
        
return i;
    }

    
    
publicvoid setNumber(T i) {
        
this.i = i;
    }

}



publicclass Hello {
    
    
publicstatic<
extends Number>void swap(WrappedNumber<T> a, WrappedNumber<T> b) {
        T temp1 
= a.getNumber();
        a.setNumber(b.getNumber());
        b.setNumber(temp1);
    }

    
    
publicstaticvoid main(String[] args) {
        
        WrappedNumber
<Short> a =new WrappedNumber<
Short>((short)10);
        WrappedNumber
<Short> b =new WrappedNumber<Short>((short)20);
        
        Hello.
<Short>swap(a, b);
        
        System.out.println(
"The answer is: a="+ a.getNumber() +", b="+b.getNumber());
    }

}