现在的位置: 首页 > 综合 > 正文

黑马程序员一java中用异或的方式进行两个变量的赋值变换,需要注意的数据类型问题

2018年05月23日 ⁄ 综合 ⁄ 共 583字 ⁄ 字号 评论关闭

------- <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,以及调用该方法时对应的数据类型的和位置。

此方法为根据数组中的角标互换位置

抱歉!评论已关闭.