1.Enumeration容器使用:
1 package com.etc; 2 3 import java.util.Enumeration; 4 import java.util.Vector; 5 6 /* 7 Enumeration容器的使用,類似於Iterator迭代器,同樣用於獲取數據 8 判斷是否存在下一個元素:hasMoreElements() 9 獲取下一個元素:nextElement() 10 需要借助Vector的elements()方法 11 Vector的線程較為安全,但是存儲效率不高 12 */ 13 public class TestEnumerationDemo { 14 15 public static void main(String[] args) { 16 Vector<String> v=new Vector<String>(); 17 v.add("java"); 18 v.add("python"); 19 v.add("c++"); 20 //類似於迭代器的使用 21 Enumeration<String> em=v.elements(); 22 while(em.hasMoreElements()) { 23 System.out.println(em.nextElement()+" "); 24 } 25 } 26 }
效果截圖:
2.單向隊列Queue簡單使用:
1 package com.etc; 2 import java.util.ArrayDeque; 3 import java.util.Queue; 4 /* 5 利用單向隊列模擬銀行存款業務,先進先出 6 */ 7 public class TestQueueDemo1 { 8 public static void main(String[] args) { 9 //構建que隊列容器:實現先進先出 10 Queue<Request> que=new ArrayDeque<Request>(); 11 //利用循環簡單實現10個人存款的情況 12 for(int i=0;i<10;i++) { 13 final int num=i; 14 que.offer(new Request() { 15 @Override 16 public void Deposite() { 17 System.out.println("第"+num+"個人正在辦理存款業務。"); 18 } 19 }); 20 } 21 dealWith(que); 22 } 23 24 public static void dealWith(Queue<Request> que) { 25 Request req=null; 26 while(null!=(req=que.poll())) { 27 //處理業務 28 req.Deposite(); 29 } 30 } 31 } 32 33 //定義一個接口用於實現銀行業務 34 interface Request{ 35 //存款業務 36 void Deposite(); 37 }
效果截圖:
3.雙向隊列Deque簡單使用:
1 package com.etc; 2 3 import java.util.ArrayDeque; 4 import java.util.Deque; 5 //利用雙向隊列實現自定義容器棧方法實現 6 public class TestQueueDemo2<E> { 7 //定義一個容器 8 private Deque<E> include=new ArrayDeque<E>(); 9 //設置容量 10 private int size; 11 //構造器 12 public TestQueueDemo2(int size) { 13 super(); 14 this.size=size; 15 } 16 17 //利用隊列的特點實現棧的壓棧 18 public boolean push(E e) { 19 //如果容器的大小比自身的容量小 20 if(include.size()+1>size) { 21 return false; 22 } 23 /*將后一個的值壓入棧中成功 24 offerLast(E e);相當於壓入隊列的尾部然后返回true*/ 25 return include.offerLast(e); 26 } 27 //彈棧,將最后一個元素拿出來 28 public E pop() { 29 return include.pollLast(); 30 } 31 //獲取壓入棧中的最后一個元素 32 public E peek() { 33 return include.peekLast(); 34 } 35 //獲取當前棧容量 36 public int size() { 37 return this.include.size(); 38 } 39 40 }
1 package com.etc; 2 3 public class Demo2Test { 4 5 public static void main(String[] args) { 6 //自定義棧初始化 7 TestQueueDemo2<String> str=new TestQueueDemo2<String>(5); 8 //棧頭端壓入數據 9 str.push("first"); 10 str.push("second"); 11 str.push("third"); 12 System.out.println(str.size()); 13 //遍歷 14 String item=null; 15 while(null!=(item=str.pop())) { 16 System.out.println(item); 17 } 18 19 } 20 21 }
效果截圖: