java交换两个数字位置

时间:2023-02-02 08:48:22
第一种:在main输出,通过反射实现
1 public static void main(String[] args) throws Exception {
Integer a = 1;
Integer b = 2;
swap(a, b);
System.out.println("a=" + a + "--------b=" + b);
} public static void swap(Integer i1, Integer i2) throws Exception {
// 这里怎么改,不能在这里输出,使main方法的a,b两值进行交换
Integer temp = new Integer(i1.intValue());
Field i1Value = i1.getClass().getDeclaredField("value");
i1Value.setAccessible(true);
i1Value.set(i1, i2.intValue());
Field i2Value = i2.getClass().getDeclaredField("value");
i2Value.setAccessible(true);
i2Value.set(i2, temp); }
 //第二种简单的交换之类的
1 /**
* 交换值演示,演示了空间换时间,和时间换空间的简单例子.
*
* @author weep
*
*/
public class SwapAB {
public static void main(String[] args) {
// 两种值交换的方式,用中间变量空间复杂度高于不用中间变量,但时间复杂度要低于不用中间变量. // 常规写两个值的交换
int a = 100;
int b = 200;
System.out.println("初始值 a=100 b=200");
// 中间变量
int c; // 复制给中间变量,临时存
c = a;
// 把b的值赋给a.
a = b;
// 把c中存的a的初始值赋给,至此完成了常规的值交换
b = c;
System.out.println("a = " + a + ", b = " + b);
// 不用中间变量的写法
a = a + b;
b = a - b;
a = a - b; System.out.println("a = " + a + ", b = " + b); // 第二种不用中间变量,换运算,效率比加法高点
a = a ^ b;
b = a ^ b;
a = a ^ b; System.out.println("a = " + a + ", b = " + b); }
}

java交换两个数字位置的更多相关文章

  1. Jquery 动态交换两个div位置并添加Css动画效果

    前端网页开发中我们经常会遇到需要动态置换两个DIV元素的位置,常见的思路大多是不考虑原始位置,直接采用append或者appendTo方式将两元素进行添加,该法未考虑原始位置,仅会添加为元素的最后一子 ...

  2. java交换两个参数值的四种方法

    第一种:添加中间变量,算是最经典最简易的一种了. //添加一个中间变量 int x = 1, y = 2; int z; z = x;x = y;y = z; System.out.println(x ...

  3. Java 交换两数的方法

    错误示范 1. 直接交换 public class SwapNumbers { // 直接交换 public static void swap(int a, int b) { int temp = a ...

  4. C++ 系列:交换两个数字

    1. 创建中间变量 这是最快也是最简单的办法,例如: #include<stdio.h> int main(){ int a=10; int b=20; int temp; printf( ...

  5. Java 交换两个变量的数值

    一.参数传递方法 为解决标题问题,首先介绍参数传递方法.目前各类程序设计语言的参数传递方法主要有三种: 按值传递 按引用传递 按指针传递 其中按值传递表示方法(函数)接收的是调用者提供的变量的拷贝,不 ...

  6. JAVA交换两个变量的值-(不使用第三变量)

    以下方法的根本原理就是: 借助第三个变量 c = a; a = b; b = c; 运算符-不借助第三变量: a = a+b; b = a-b; a = a-b; 为运算符-不借助第三个变量: (此种 ...

  7. java交换两个变量值a,b的多钟方法

    首先我们定义两个变量用来检查方法可行性 int a=5; int b=3; 方法一,也是最容易想到的,就是建立中间变量法 int temp; temp=a; a=b; b=temp; System.o ...

  8. java交换两个值的三种方法 经典

    1.中间变量(在开发中常用) int c=a; a=b; b=c; System.out.println("a的值: "+a+" b的值: "+b); 2.按位 ...

  9. C&num;交换两个数字

随机推荐

  1. Application package &&num;39&semi;AndroidManifest&period;xml&&num;39&semi; must have a minimum of 2 segments&period;

    看了源码就是packagename里面必须包含一个. 源码在: ./sdk/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/id ...

  2. DNS枚举工具DNSenum

    DNS枚举工具DNSenum   DNSenum是一款非常强大的域名信息收集工具.它能够通过谷歌或者字典文件猜测可能存在的域名,并对一个网段进行反向查询.它不仅可以查询网站的主机地址信息.域名服务器. ...

  3. iscsi 怎么搞

    I recently reinstalled the software on my NAS (open media vault) and tidied up the host name etc. As ...

  4. 用shell在一个文件后面的每一行追加数据

    在shell分析log的时候,需要将数据过滤后转为csv的格式: 要在分析好的数据后面追加逗号: sed 's/$/&,/g' no2.log > ccc.log 结果保存在ccc.lo ...

  5. 【HDOJ】1969 Pie

    二分. #include <stdio.h> #include <math.h> ; ]; int main() { int case_n, n, f, m; double r ...

  6. AlwaysON同步过程

    <SQL Server 2012实施与管理实战指南>中指AlwaysON同步过程如下: 任何一个SQL Server里都有个叫Log Writer的线程,当任何一个SQL用户提交一个数据修 ...

  7. Spark&colon;控制日志输出级别

    Spark:控制日志输出级别 终端修改 在pySpark终端可使用下面命令来改变日志级别 sc.setLogLevel("WARN") # 或者INFO等 修改日志设置文件 ** ...

  8. StringBuilder的实现与技巧(转)

    1.Length   0.说明 在上一篇进一步了解String 中,发现了string的不便之处,而string的替代解决方案就是StringBuilder的使用 它的使用也很简单 System.Te ...

  9. DataTables ajax &plus; bootstrap 分页&sol;搜索&sol;排序&sol;常见问题

    最近学校的网站建设需要,尝试使用了下Jquery dataTables控件,接触过C#的人都知道,C#中也含有一个DataTable,但它和我们今天讨论的东西无关 我使用的是官网最新的DataTabl ...

  10. HDU 5236 Article(概率DP)

    http://acm.hdu.edu.cn/showproblem.php?pid=5236 题意:现在有人要在文本编辑器中输入n个字符,然而这个编辑器有点问题. 在i+0.1s(i>=0)的时 ...