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 Vectorv=new Vector ();17 v.add("java");18 v.add("python");19 v.add("c++");20 //类似于迭代器的使用21 Enumeration 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 Queueque=new ArrayDeque ();11 //利用循环简单实现10个人存款的情况12 for(int i=0;i<10;i++) {13 final int num=i;14 que.offer(new Request() {15 @Override16 public void Deposite() {17 System.out.println("第"+num+"个人正在办理存款业务。");18 } 19 });20 }21 dealWith(que);22 }23 24 public static void dealWith(Queue 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{ 7 //定义一个容器 8 private Deque include=new ArrayDeque (); 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 TestQueueDemo2str=new TestQueueDemo2 (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 }
效果截图: