Java交换两个数字

一.四种方式交换两个数字

  • 直接交换:失败
  • 包装类交换:失败
  • 数组方式交换:成功
  • 成员变量交换:成功
 1 public class SwapNumbers {
 2     public int a;
 3     public int b;
 4
 5     //包装类交换
 6     public static void swap (Integer a, Integer b) {
 7         Integer temp = a;
 8         a = b;
 9         b = temp;
10     }
11
12     //直接交换
13     public static void swap (int a, int b) {
14         int temp = a;
15         a = b;
16         b = temp;
17     }
18
19     //数组
20     public static void swap (int[] arr) {
21         int temp = arr[0];
22         arr[0] = arr[1];
23         arr[1] = temp;
24     }
25
26     //成员对象
27     public  void swapNum(int a, int b) {
28         this.a = b;
29         this.b = a;
30     }
31
32     //包装类打印
33     public static void print(Integer m, Integer n) {
34         System.out.println("m=" + m.intValue() + " n=" + n.intValue());
35     }
36     //直接打印
37     public static void print(int a, int b) {
38         System.out.println("a=" + a + " b=" + b);
39     }
40     //对象打印
41     public  void print() {
42         System.out.println("a=" + this.a + " b=" + this.b);
43     }
44     //数组打印
45     public static void print(int[] a) {
46         for (int i : a) {
47             System.out.print(i + " ");
48         }
49         System.out.println();
50     }
51
52
53     public static void main(String[] args) {
54
55         System.out.println("------直接交换----------");
56         int a = 2, b = 3;
57
58         print(a,b);
59         swap(a, b);
60         print(a,b);
61
62         System.out.println("------包装类交换----------");
63         Integer m = new Integer(2);
64         Integer n = new Integer(3);
65
66         print(m,n);
67         swap(m, n);
68         print(m,n);
69
70         System.out.println("-------数组交换---------");
71         int[] arr = {2,3};
72         print(arr);
73         swap(arr);
74         print(arr);
75
76         System.out.println("-------成员变量交换---------");
77         print(a,b);
78         SwapNumbers sn = new SwapNumbers();
79         sn.swapNum(a, b);
80         sn.print();
81
82     }
83 }

结果:

 1 ------直接交换----------
 2 a=2 b=3
 3 a=2 b=3
 4 ------包装类交换----------
 5 m=2 n=3
 6 m=2 n=3
 7 -------数组交换---------
 8 2 3
 9 3 2
10 -------成员变量交换---------
11 a=2 b=3
12 a=3 b=2

原文地址:https://www.cnblogs.com/zhihaospace/p/12217633.html

时间: 2024-11-07 03:56:55

Java交换两个数字的相关文章

java交换两个数字位置

第一种:在main输出,通过反射实现 1 public static void main(String[] args) throws Exception { 2 Integer a = 1; 3 Integer b = 2; 4 swap(a, b); 5 System.out.println("a=" + a + "--------b=" + b); 6 } 7 8 public static void swap(Integer i1, Integer i2) t

使用引用交换两个数字

#include <iostream> using namespace std; //定义一个函数,用于交换两个变量的值 void swap(int &a, int &b); void main() { int i = 3, j = 5; cout<<"交换前:i="<<i<<" j="<<j<<endl; swap(i,j); cout<<"交换后:i=&

C语言不定义中间变量交换两个数字的源码

内容过程中,把写内容过程中经常用到的内容收藏起来,如下内容是关于C语言不定义中间变量交换两个数字的的内容,应该能对码农也有用途. #include<stdio.h>main(){int a, b;printf("please input a:");printf("please input b:");printf("a=%d,b=%d", a, b);b=b^a;a=a^b;} 原文地址:https://blog.51cto.com/1

java交换两个数的常见方法及效率测试

原文地址--http://blog.csdn.net/qq525099302/article/details/47294443 论两个数的交换的重要性 讨论交换两个数的方法对某些人来说无聊,但某些人很乐意探究,甚至某些面试官喜欢用这个做文章.刚出来找工作笔试的时候我也碰到与之相关的问题. 常见的两个数交换的方法 边赋值边运算 加减减交换 用中间变量交换 异或交换 下面是代码 public class Test { public static void main(String[] args) {

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

1. 创建中间变量 这是最快也是最简单的办法,例如: #include<stdio.h> int main(){ int a=10; int b=20; int temp; printf("交换前a,b的值为:\n"); printf("a=%d\n",a); printf("b=%d\n",b); temp=a; b=a; a=temp; printf("交换后a,b的值为:\n"); printf("

java面试之位运算(如何不通过第三方变量交换两个数字,效率最高的乘法运算)

class Demo2_Operator { public static void main(String[] args) { /* * 位异或运算符的特点 * ^的特点:一个数据对另一个数据位异或两次,该数本身不变. */ //System.out.println(5 ^ 10 ^ 10); //System.out.println(5 ^ 10 ^ 5); /* * 请自己实现两个整数变量的交换(不需要定义第三方变量) * 注意:以后讲课的过程中,我没有明确指定数据的类型,默认int类型.

Java 交换两个变量的数值

一.参数传递方法 为解决标题问题,首先介绍参数传递方法.目前各类程序设计语言的参数传递方法主要有三种: 按值传递 按引用传递 按指针传递 其中按值传递表示方法(函数)接收的是调用者提供的变量的拷贝,不改变参数的值:按引用传递表示方法(函数)接收的调用者提供的变量地址:按指针传递表示方法(函数)接收的是调用者提供的指针的拷贝,不改变指针的值和地址,但可以改变指针所指向的地址. 二.Java参数传递方法 Java提供的参数传递方法,很遗憾只有一种,按值传递.也就是说,方法得到的是所有参数值的一个拷贝

(转)Java 交换两数的方法

错误示范 1. 直接交换 1 public class SwapNumbers { 2 3 // 直接交换 4 public static void swap(int a, int b) { 5 int temp = a; 6 a = b; 7 b = temp; 8 }; 9 10 public static void main(String[] args) { 11 int a = 10; 12 int b = 20; 13 System.out.println("交换前: a = &quo

java实现原数组根据下标分隔成两个子数组并且在原数组中交换两个子数组的位置

此类实现:输出一行数组数据,根据输入的下标,以下标位置为结束,将原数组分割成两组子数组.并交换两个子数组的位置,保持子数组中的元素序号不变.如:原数组为7,9,8,5,3,2 以下标3为分割点,分割为子数组一:7,9,8,5.和子数组二:3,2.经过交换算法后的结果应为:3,2,7,9,8,5 有两种交换算法<1>前插法:将子数组3,2另存在一个临时数组中,将原数组7,9,8,5,3,2每一位向后移两个位置  再将子数组3,2插入到移动好元素位置的原数组中.<2>逆置法:将原数组7