一.四种方式交换两个数字
- 直接交换:失败
- 包装类交换:失败
- 数组方式交换:成功
- 成员变量交换:成功
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