用JAVA写一个函数交换两个数字
2011-09-08 10:29
246 查看
前几天面试,问到了这个题目,写了个程序测试了下,直接交换和用包装了交换都不能交换两个数的值,而采用数组交换和成员变量交换是可以做到的
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=3 a=2 b=3 ------包装类交换---------- m=2 n=3 m=2 n=3 -------数组交换--------- 2 3 3 2 -------成员变量交换--------- a=2 b=3 a=3 b=2
相关文章推荐
- 用JAVA写一个函数交换两个数字
- 用JAVA写一个函数交换两个数字
- 用宏实现函数—1.写一个宏可以将一个数字的奇数位和偶数位交换 2.求两个数中求较大值
- 有两个升序排列的数组A1和A2,给A1开辟的剩余内存有足够空间容纳A1,请实现一个函数,把A2中所有数字插入到A1中,并且是按照升序排列的
- 用宏将一个数字的奇数位和偶数位交换和使用宏实现两个数中求较大值
- 写一个函数交换两个结构体变量
- java交换两个数字位置
- 定义一个函数,在该函数中可以实现任意两个整数的加法。java实现
- 有两个升序排列的数组A1和A2,给A1开辟的剩余内存有足够空间容纳A1,请实现一个函数,把A2中所有数字插入到A1中,并且是按照升序排列的
- 有两个升序的的数组A1和A2,内存在A1末尾有足够的多余空间容纳A2,设计一个函数,把A2中的所有数字插入到A1中并且所有的数字都是升序的。
- 设计一个数据结构,包含两个函数,1.插入一个数字,2.获得中数
- 有两个升序排列的数组A1和A2,给A1开辟的剩余内存有足够空间容纳A1,请实现一个函数,把A2中所有数字插入到A1中,并且是按照升序排列的
- 用函数交换两个引用指向的对象--java
- 【C】写一个宏将一个数字的奇数位和偶数位交换。实现两个int(32位)整数m和n的二进制表达中,位(bit)不同的个数
- Java 利用swap函数交换两个整型数据值
- 有两个升序排列的数组A1和A2,给A1开辟的剩余内存有足够空间容纳A1,请实现一个函数,把A2中所有数字插入到A1中,并且是按照升序排列的
- 编程:用java 语言实现,输入一个数,就相应地输出的几维数组!||用1、2、2、3、4、5这六个数字,用java写一个函数,打印出所有不同的排列,要求:"4"不能在第三位,"3"与"5"不能相连
- Java中异或运算实现两个整数的交换以及其功能函数实现
- java使用异或操作交换两个数字的值
- JAVA和C++ 交换两个变量的值的函数 区别