Java变量交换的两种方式【无第三方变量】

1、用两个数求和然后相减的方式进行数据交换,需要注意int范围,若a+b超过int范围会损失精度。

package cn.itcats.sort;

public class ChangeValue {
	public static void main(String[] args) {
		int a = 1;
		int b = 2;
		a = a + b;
		b = a - b;
		a = a - b;
		System.out.println("a= "+a+" ,b= "+b);
	}
}

2、利用位运算的方式进行数据的交换,原理是:一个数 异或 同一个数两次,结果还是那个数,且不会超出int范围。

private void swap(int[] arr, int i, int j) {
		arr[i] = arr[i] ^ arr[j];
		arr[j] = arr[i] ^ arr[j];
		arr[i] = arr[i] ^ arr[j];
	}

猜你喜欢

转载自blog.csdn.net/itcats_cn/article/details/81388059
今日推荐