黑馬程序員一java中用異或的方式進行兩個變量的賦值變換,需要注意的數據類型問題

------- <a href="http://www.itheima.com" target="blank">android培訓</a>、<a href="http://www.itheima.com" target="blank">java培訓</a>、期待與您交流! ----------


在java賦值變換中,對兩個變量的值進行互換,通常我們喜歡採用第三變量的方式,進行互換

Int類型的互換例如:

public static void swap(int x,int y,)
{
int temp=x;
x=y;
y=temp;
}

但是,在上述方法中多了一個變量temp,而且該變量只在該方法中,會給內存造成不必要的浪費。

所以採用下面的異或的方式可以解決這個問題

public static void swap(int x,int y,)
{
x=x^y;
y=x^y;
x=x^y;
}

Int數組類型的互換方式,就稍微有區別,多了一個數組變量,如果缺少該數組的定義,就會出錯。

數組類型的互換例如:

public static void swap(int x,int y,int []arr)
{
arr[x]=arr[x]^arr[y];
arr[y]=arr[x]^arr[y];
arr[x]=arr[x]^arr[y];
}

上面例子中注意數組類型int[] arr,以及調用該方法時對應的數據類型的和位置。

此方法爲根據數組中的角標互換位置



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章