交换两个数三种方法,小白你会几种呢。

方法一:
int c = a;
a = b;
b = c;
好处是比较容易理解,值也不会出现问题,不好在于产生一个新的内存空间
方法二:
a = a + b; //a空间存储的是两个元素之和 3
b = a - b; //利用两个元素的和减去原来的b剩下原来的a,b 等于1, a 等于3.
a = a -b; //利用a空间两个元素的和减去原来的a,剩下是原来的b,赋给a,b 等于 1,a 等于 2.
好处是省略了一个新的空间,不好是可能会在+产生一个越界问题
方法三:
a = a ^ b; (1)
b = a ^ b; (2)
a = a ^ b; (3)
分析:
(1)中,1 ^ 2 —>001^010==011(对应十进制为3)
(2)中,3 ^ 2----->011^010=001(对应十进制为1)
(3)中,3 ^ 1------>011^001=010(对应十进制为2)
一个数字异或两次同一个数字,值不会发生改变,如
a ^ b ^ b == a

你可能感兴趣的:(笔记,javase,java,java,7)