/* *在大不久前,我決定自學Java,關註了很多的公眾號、微博等。沒幾天我看到一個笑話: *晚上孩子哭了,老婆讓我去看看。 *我說:“不行,咱們的床是隊列,你先上的床就得你先下床。。。 *老婆說:NO NO No,是棧。 * 緊接著一腳踹到我的屁股上。 * 當時,看了評論,都是在說程式員夫妻歡樂多 ...
/*
*在大不久前,我決定自學Java,關註了很多的公眾號、微博等。沒幾天我看到一個笑話:
*晚上孩子哭了,老婆讓我去看看。
*我說:“不行,咱們的床是隊列,你先上的床就得你先下床。。。
*老婆說:NO NO No,是棧。
* 緊接著一腳踹到我的屁股上。
* 當時,看了評論,都是在說程式員夫妻歡樂多之類的話,也上網查了堆棧的知識,
* 不是電腦專業的,看得也是雲里霧裡的。今天是二輪複習基礎知識,
* 關於LinkedList有可以模擬堆棧的方法,就上手操作了一下,才理解了這個笑話的真諦,
* 越來越感覺,編程語言的魅力了,開心。
*/
1 import java.util.LinkedList; 2 3 public class NoNo { 4 public static void main(String[] args) { 5 MyQueue q = new MyQueue(); 6 q.add("老婆先上床"); 7 q.add("我在老婆之後上床"); 8 9 while (q.isEmpty() == false) { 10 11 System.out.println(q.get2() + "卻要下床哄熊孩子"); 12 13 } 14 15 } 16 } 17 18 class MyQueue { 19 private LinkedList List;// 底層 20 21 MyQueue() { 22 List = new LinkedList(); 23 } 24 25 public void add(Object obj) { 26 List.addFirst(obj); 27 } 28 public Object get2() { 29 // 模仿棧 30 return List.removeFirst(); 31 } 32 33 public boolean isEmpty() { 34 return List.isEmpty(); 35 } 36 }
PutOut:
我在老婆之後上床卻要下床哄熊孩子
老婆先上床卻要下床哄熊孩子
1 import java.util.LinkedList; 2 3 public class NoNo { 4 public static void main(String[] args) { 5 MyQueue q = new MyQueue(); 6 q.add("老婆先上床"); 7 q.add("我在老婆之後上床"); 8 9 while (q.isEmpty() == false) { 10 11 System.out.println(q.get()+"卻要下床哄熊孩子"); 12 } 13 14 } 15 } 16 17 class MyQueue { 18 private LinkedList List;// 底層 19 20 MyQueue() { 21 List = new LinkedList(); 22 } 23 24 public void add(Object obj) { 25 List.addFirst(obj); 26 } 27 28 public Object get(){ 29 //模仿隊列 30 return List.removeLast(); 31 } 32 33 public boolean isEmpty() { 34 return List.isEmpty(); 35 } 36 }
OutPut:
老婆先上床卻要下床哄熊孩子
我在老婆之後上床卻要下床哄熊孩子
相關知識補充:
追源碼: