java中两数据交换四种方式
2012-10-03 22:23
204 查看
public class DemoTest { public static void main(String[] args) { // 方式1: 额外定变量法 (常用型) int x1 = 2147483647; int y1 = 2147483646; System.out.println("方式1交换之前:x1= " + x1 + ", y1= " + y1); int z1 = x1; x1 = y1; y1 = z1; System.out.println("方式1交换之后:x1= " + x1 + ", y1= " + y1); //解释说明:如题. // 方式2:总和法 int x2 = 7;// 2147483647 int y2 = 4;// 2147483646 System.out.println("方式2交换之前:x2= " + x2 + ", y2= " + y2); y2 = x2 + y2; x2 = y2 - x2; y2 = y2 - x2; System.out.println("方式2交换之后:x2= " + x2 + ", y2= " + y2); //解释说明:如题 方式2要有一个足够大的变量来存储总和,程序容易出现数据越界错误. // 方式3:使用^(异或) (整型推荐) int a1 = 2147483647; int b1 = 2147483646; System.out.println("方式3交换之前:a1= " + a1 + ", b1= " + b1); a1 = a1 ^ b1; // b1 = a1 ^ b1; // b1^a1^a1 = b1 a1 = a1 ^ b1; // b1^a1^b1 = a1 System.out.println("方式3交换之后:a1= " + a1 + ", b1= " + b1); //解释说明:^(异或) //假设 原始 a = 1, b = 0; //a = a ^ b -> a = 1 ^ 0; a = 1; //b = a ^ b -> b = 1 ^ 0 ^ 0 ; b = 1; //a = a ^ b -> a = 1 ^ 0 ^ 1; a = 0 //这中间有一点: a 保持着 a ^ b 来处理, 而 b 则是某一个具体数据 // 方式4: 使用运算符优先级特点 int a2 = 2147483647; int b2 = 2147483646; System.out.println("方式4交换之前:a2:" + a2 + ", b2:" + b2); a2 = b2 + (b2 = a2) * 0 ; System.out.println("方式4交换之后:a2:" + a2 + ", b2:" + b2); //解释说明:暂时无 } }
相关文章推荐
- HIVE的安装配置、mysql的安装、hive创建表、创建分区、修改表等内容、hive beeline使用、HIVE的四种数据导入方式、使用Java代码执行hive的sql命令
- java版——实现两个数值交换的四种方式
- 四种交换数据的方式
- java解析xml数据的四种方式
- 大数据Java-交换变量的3种方式
- android Java 提交数据到服务器的两种方式中四种方法
- java中内部类的创建四种情况,三种方式,及内部数据访问权限
- Java中对XML格式数据的四种解析方式,代码示例解析
- Java:用四种方式实现两个数交换
- DeviceIoControl函数对应的四种数据交换方式
- 大数据Java-交换变量的 3 种方式
- Java使用基本字节流OutputStream的四种方式对于数据复制(文本,音视频,图像等数据)
- 四种常见的 POST 提交数据方式
- Android 下的四种数据存储方式
- 宋体元素1.jQuery实例 2.jQuery load get post 数据提交方式 3.jquery ajax 应用 4.jquery小案例-java教程
- 面向对象的方式进行数据交换网络之间的差异
- 第六天 Java的数据溢出应对方式
- [Android]Android数据的四种存储方式
- 四种常见的 POST 提交数据方式