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 }
效果截图: