第一种:在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#交换两个数字

随机推荐

  1. 在数组中搜索数据用 filteredArrayUsingPredicate

    苹果官方说明文档:https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Predicates/Articles/ ...

  2. windows namedPipe 命名管道clent and server

    1.client: #include "iostream" #include "windows.h" using namespace std; void mai ...

  3. Android -- 自定义View(一)

    1,引言:刚从国庆长假的放荡中醒过来,已经有将近十天没碰电脑了,上午写写代码感觉手还是挺生的,想把自定义view好好的系统的学学,在网上看了看别人出的教程 ,stay4it的自定义view感觉还是挺好 ...

  4. paper 22:kl-divergence(KL散度)实现代码

    这个函数很重要: function KL = kldiv(varValue,pVect1,pVect2,varargin) %KLDIV Kullback-Leibler or Jensen-Shan ...

  5. Tostring(); 括号中的参数 格式化字符串

    最近在逛 msdn 发现    查到  getTypeCode 方法  看到里边居然有 tostring("D")这样的写法      运行了一遍 感觉可以显示值      然后就 ...

  6. lower power设计中的DVFS设计

    Pswitch = Ceff * Vvdd^2*Fclk, Pshort-circuit = Isc * Vdd * Fclk, Pleakage = f(Vdd, Vth, W/L) 尽管对电压的s ...

  7. 为VirtualBox里的Linux系统安装增强功能

    先说下为什么要安装增强功能, 很重要的原因是分辨率,没有安装增强功能的虚拟机里的系统往往不能全屏的,屏幕显示的内容没有充满整个屏幕. 还有主机和客户机之间共享文件夹也需要客户机的系统安装了增强功能. ...

  8. 关于linux的systemd的一些事

    1. 输出运行失败的单元: systemctl --failed 2. 所有的单元文件存放在 /usr/lib/systemd/system/ 和 /etc/systemd/system/ 这两个目录 ...

  9. zw版【转发·台湾nvp系列Delphi例程】HALCON SetLineStyle2

    zw版[转发·台湾nvp系列Delphi例程]HALCON SetLineStyle2 procedure TForm1.Button1Click(Sender: TObject);var img : ...

  10. sql字段类型介绍

    1 表格与储存引擎 表格(table)是数据库中用来储存纪录的基本单位,在建立一个新的数据库以后,你必须为这个数据库建立一些储存资料的表格: 每一个数据库都会使用一个资料夹,这些数据库资料夹用来储存所 ...