swap - 普通程序员、文艺程序员、2B程序员
2011-11-09 15:11
337 查看
C、C++版:看到同学人人的发表日志,觉得有趣,然后就写下来。仅供娱乐。
普通程序员:
文艺程序员:
2B程序员:
那么Java版的该如何呢?事实上,用Java去写一个int型的两个数,并不像C++中的那样简单,因为Java中不提供指针。想要像C++这样文艺起来并不容易。
下面是用Java实现的代码,估计能算个普通程序员吧,2B程序员就很容易弄了,文艺的就不知道怎样了(那就要靠大家的想法了):
PS:顺带说一下,Java中的AtomicReference类也可以实现交换,和我上面的原理一样。之所以自己写一个Wrapper类,是为了大家看的简单点。
普通程序员:
void swap (int &a, int &b) { int temp = a; a = b; b = temp; }
文艺程序员:
void swap (int &a, int &b) { a = a^b; b = a^b; a = a^b; }
2B程序员:
void swap (int a, int b) { int temp = a; a = b; b = temp; }
那么Java版的该如何呢?事实上,用Java去写一个int型的两个数,并不像C++中的那样简单,因为Java中不提供指针。想要像C++这样文艺起来并不容易。
下面是用Java实现的代码,估计能算个普通程序员吧,2B程序员就很容易弄了,文艺的就不知道怎样了(那就要靠大家的想法了):
public class Swap { /** * @param args */ @SuppressWarnings("unchecked") static public void swap(Wrapper x, Wrapper y){ Wrapper z = new Wrapper(x.getA()); x.setA(y.getA()); y.setA(z.getA()); } public static void main(String[] args) { // TODO Auto-generated method stub Wrapper<Integer> wA = new Wrapper<Integer>(1); Wrapper<Integer> wB = new Wrapper<Integer>(2); System.out.println("wA = " + wA.getA() + " wB = " + wB.getA()); swap(wA, wB); System.out.println("wA = " + wA.getA() + " wB = " + wB.getA()); Wrapper<String> w1 = new Wrapper<String>("123"); Wrapper<String> w2 = new Wrapper<String>("456"); System.out.println("w1 = " + w1.getA() + " w2 = " + w2.getA()); swap(w1, w2); System.out.println("w1 = " + w1.getA() + " w2 = " + w2.getA()); } } class Wrapper<T> { private T a; public Wrapper(T a){ this.a = a; } public T getA() { return a; } public void setA(T a) { this.a = a; } }
PS:顺带说一下,Java中的AtomicReference类也可以实现交换,和我上面的原理一样。之所以自己写一个Wrapper类,是为了大家看的简单点。
相关文章推荐
- 普通程序员、文艺程序员和2B程序员的区别
- 你是普通程序员、文艺程序员还是2B程序员?
- 普通程序员、文艺程序员、2B程序员
- 普通程序员、文艺程序员、2B程序员
- 三猿开泰,走进普通、文艺、2B程序猿的逗比世界
- C++ sort和for_each算法的普通、文艺和2B用法
- 普通程序猿 文艺程序猿 2B程序猿
- 普通程序猿 文艺程序猿 2B程序猿
- 普通青年、文艺青年、2B青年---最近老火了
- C++ 中的单例模式(普通,2B,文艺)
- 三猿开泰,走进普通、文艺、2B程序猿的逗比世界
- 普通程序猿、文艺程序猿和2B程序猿的区别
- 或普通或文艺或2B的Hello World
- c++普通程序员/文艺程序员/二逼程序员
- 普通C++程序员 VS 文艺C++程序员
- 文艺青年、普通青年、2b青年到底是什么意思?
- C++ 中的单例模式 普通,2B, 文艺
- 一个普通java程序员读取 安卓《第一行代码》 随笔(二)
- 6月30日云栖精选夜读:程序员技术与文艺的PK_来首届阿里巴巴研发效能嘉年华
- 从普通Java程序员到阿里高级架构师,他用了六年! 3ff0