对两个变量的数据进行互换。不需要第三方变量。(Java知识点小面试)
2017-12-04 19:49
459 查看
首先定义两个变量
int a = 3,b = 5;
然后,问怎样不通过第三方变量进行数据互换?
变成a=5,b=3
方式一:
第一步: a = a + b; a = 8;
第二步: b = a - b;
b = 3;
第三步:a = a - b
a = 5;
方式二:
第一步:a = a^b; a = 8;
第二步:b = a ^ b; (把第一步结果带入第二步运算 即:b=a^b^b)
b=3
第三步:a = a ^ b; (把第二步结果带入第二步运算 即:a=a^b^a)
a=5
代码在此
从上面我们可以感受到方式二好难懂哟,随之而来的也有一种“不明绝厉”的感觉。
其实,方式二,就是那么6,不仅效率高而且非常高效和优雅。
因为方式二用到了异或运算,其运算方式直接以二进制的方式进行运算。故而效率高。
希望机智如你,面试回答出方式二的答案,让面试官对你的回答更满意。
int a = 3,b = 5;
然后,问怎样不通过第三方变量进行数据互换?
变成a=5,b=3
方式一:
第一步: a = a + b; a = 8;
第二步: b = a - b;
b = 3;
第三步:a = a - b
a = 5;
方式二:
第一步:a = a^b; a = 8;
第二步:b = a ^ b; (把第一步结果带入第二步运算 即:b=a^b^b)
b=3
第三步:a = a ^ b; (把第二步结果带入第二步运算 即:a=a^b^a)
a=5
代码在此
从上面我们可以感受到方式二好难懂哟,随之而来的也有一种“不明绝厉”的感觉。
其实,方式二,就是那么6,不仅效率高而且非常高效和优雅。
因为方式二用到了异或运算,其运算方式直接以二进制的方式进行运算。故而效率高。
希望机智如你,面试回答出方式二的答案,让面试官对你的回答更满意。
相关文章推荐
- 对两个整数变量的值进行互换(不需要第三方变量)
- 对两个整数变量的值进行互换(不需要第三方变量)
- 对两个整数变量的值进行互换(不需要第三方变量)
- 对两个整数变量的值进行互换(不需要第三方变量)
- 如何用JAVA对两个整数变量的值进行互换的三种方法
- 对两个变量的数值进行互换,要求不用第三方变量——位运算符(异或)
- java中把两个变量进行值交换,通过异或两次运算就能实现值互换。
- 【java基础】两个变量互换不使用第三方变量的方法
- java 对两个整数变量的值进行互换。三种方法
- 如何用JAVA对两个整数变量的值进行互换的三种方法
- 两个变量中的值进行互换的方法
- Java实现两个变量值互换-----不借助第3个变量
- 两个数,或者两个字符串之间不需要任何变量进行交换
- 基础—对两个整数变量的值进行互换(不用第三个变量)
- 线程间无需特别的手段进行通信,因为线程间可以共享数据结构,也就是一个全局变量可以被两个线程同时使用,不过要注意的是线程间需要做好同步。
- 【Java】不使用第三方变量交换两个变量的值
- Java实现两个变量的互换(不借助第3个变量)
- 不使用第三方变量交换两个数值变量的值(java语言)
- 两个整数变量的值进行互换的3种方法
- 不借助第三方变量实现两个整数变量值的互换