用JAVA写一个函数交换两个数字

来源:互联网 发布:索尼相机传照片到mac 编辑:程序博客网 时间:2024/05/23 17:55

前几天面试,问到了这个题目,写了个程序测试了下,直接交换和用包装了交换都不能交换两个数的值,而采用数组交换和成员变量交换是可以做到的

 

package com.wq.swap;public class SwapNumbers {public int a;public int b;//包装类交换public static void swap (Integer a, Integer b) {Integer temp = a;a = b;b = temp;};//直接交换public static void swap (int a, int b) {int temp = a;a = b;b = temp;};//数组public static void swap (int[] arr) {int temp = arr[0];arr[0] = arr[1];arr[1] = temp;};//成员对象public  void swapNum(int a, int b) {this.a = b;this.b = a;};//包装类打印public static void print(Integer m, Integer n) {System.out.println("m=" + m.intValue() + " n=" + n.intValue());}//直接打印public static void print(int a, int b) {System.out.println("a=" + a + " b=" + b);}//对象打印public  void print() {System.out.println("a=" + this.a + " b=" + this.b);}//数组打印public static void print(int[] a) {for (int i : a) {System.out.print(i + " ");}System.out.println();}public static void main(String[] args) {System.out.println("------直接交换----------");int a = 2, b = 3;print(a,b);swap(a, b);print(a,b);System.out.println("------包装类交换----------");Integer m = new Integer(2);Integer n = new Integer(3);print(m,n);swap(m, n);print(m,n);System.out.println("-------数组交换---------");int[] arr = {2,3};print(arr);swap(arr);print(arr);System.out.println("-------成员变量交换---------");print(a,b);SwapNumbers sn = new SwapNumbers();sn.swapNum(a, b);sn.print();}}
------直接交换----------a=2 b=3a=2 b=3------包装类交换----------m=2 n=3m=2 n=3-------数组交换---------2 3 3 2 -------成员变量交换---------a=2 b=3a=3 b=2



 

原创粉丝点击