java交换两个数字位置
第一种:在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交换两个数字位置的更多相关文章
- Jquery 动态交换两个div位置并添加Css动画效果
前端网页开发中我们经常会遇到需要动态置换两个DIV元素的位置,常见的思路大多是不考虑原始位置,直接采用append或者appendTo方式将两元素进行添加,该法未考虑原始位置,仅会添加为元素的最后一子 ...
- java交换两个参数值的四种方法
第一种:添加中间变量,算是最经典最简易的一种了. //添加一个中间变量 int x = 1, y = 2; int z; z = x;x = y;y = z; System.out.println(x ...
- Java 交换两数的方法
错误示范 1. 直接交换 public class SwapNumbers { // 直接交换 public static void swap(int a, int b) { int temp = a ...
- C++ 系列:交换两个数字
1. 创建中间变量 这是最快也是最简单的办法,例如: #include<stdio.h> int main(){ int a=10; int b=20; int temp; printf( ...
- Java 交换两个变量的数值
一.参数传递方法 为解决标题问题,首先介绍参数传递方法.目前各类程序设计语言的参数传递方法主要有三种: 按值传递 按引用传递 按指针传递 其中按值传递表示方法(函数)接收的是调用者提供的变量的拷贝,不 ...
- JAVA交换两个变量的值-(不使用第三变量)
以下方法的根本原理就是: 借助第三个变量 c = a; a = b; b = c; 运算符-不借助第三变量: a = a+b; b = a-b; a = a-b; 为运算符-不借助第三个变量: (此种 ...
- java交换两个变量值a,b的多钟方法
首先我们定义两个变量用来检查方法可行性 int a=5; int b=3; 方法一,也是最容易想到的,就是建立中间变量法 int temp; temp=a; a=b; b=temp; System.o ...
- java交换两个值的三种方法 经典
1.中间变量(在开发中常用) int c=a; a=b; b=c; System.out.println("a的值: "+a+" b的值: "+b); 2.按位 ...
- C#交换两个数字
随机推荐
- SQL 基本的函数
select * from emp;
- The Havel-Hakimi Algorithm
1.If any di>=n then fail 2.If there is an odd number of odd degrees then fail 3.If there is a di& ...
- linux第12天 线程
今天主要学习了共享内存,信号量的封装,还有线程. POSIX线程库 与线程有关的函数构成了一个完整的系列,绝大多数函数的名字都是以“pthread_”打头的 要使用这些函数库,要通过引入头文<p ...
- Android -- 自定义View小Demo,关于Rect绘制Android机器人(一)
1,关于Rect和RectF类的区别以前一直没有去关注它,刚刚了解了一下才知道都是用来确定矩形的区域,不过Rect是int类型的坐标而RectF是float类型的坐标,所以说RectF要更加精确.现在 ...
- Java内部类小程序(成员内部类,静态内部类,匿名内部类)
/** * 测试java内部类(成员内部类,静态内部类,匿名内部类) * 局部内部类不常用,就不写了. * @package :java05 * @author shaobn * @Describe ...
- SpringMVC配制全局的日期格式
SpringMVC文件配制: <mvc:annotation-driven> <!-- 处理responseBody 里面日期类型 --> <mvc:message-co ...
- 夺命雷公狗---Thinkphp----16之首页的完成及全站的完成
刚才我们首页只是完成了一部分的数据,那么这里我们就来将他所以的完成: IndexController.class.php控制器代码如下所示: <?php namespace Home\Contr ...
- DFT basics
DFT测试中,最重要的部分还是sequential circuit的内部状态的测试. 起初ad hoc的方法用来提高testability,可以提高局部的coverage,但并不是一个系统性的方法. ...
- selenium学习记录
browser = webdriver.Firefox()browser是一个WebDriver类,常用的方法有 'add_cookie',添加cookie 'back',返回上一页 'close', ...
- Linux终端乱码的解决办法
用SSH连接Linux时经常会遇到乱码的情况,痛苦了好久,在网上找到一个解决办法,编辑~/.bash_profile文件,加入下面两行: LANG="zh_CN.GB18030" ...