明天开始,专栏增加一个黑马程序员的课程更新。
其它容器收尾讲解
队列Queue与Deque(单向队列与双向队列)
Enumeration(较老的接口,JDK1.5前使用频繁,维护旧系统会用到)
Hashtable与Properties
引用类型(强、软、弱、虚)与WeakHashMap
IdentityHashMap与EnumMap
同步控制与只读设置
-
开源工具包:
Guava:Google Collection
Apache Commons Collection
容器总结
第129集:其它容器——Queue接口-单向队列-模拟银行业务-自定义堆栈
-
模拟银行排队
package test129;import java.util.ArrayDeque;import java.util.Queue;public class Demo01 { public static void main(String[] args){ Queue
que = new ArrayDeque (); //模拟排队情况 for(int i=0;i<10;i++){ final int num = i; que.offer(new Request(){ public void deposit(){ System.out.println("第"+num+"个人存款额度为:"+(Math.random()*10000)); } }); } dealWith(que); } public static void dealWith(Queue que){ Request req = null; while(null!=(req=que.poll())){ req.deposit(); } }}interface Request{ //存款 void deposit();} -
弹、压、获取头
package test129;import java.util.ArrayDeque;import java.util.Deque;/** * @author wangtao * 1、弹 * 2、压 * 3、获取头 * */public class MyStack
{ //容器 private Deque container = new ArrayDeque (); //容量 private int cap; public MyStack(int cap){ super(); this.cap = cap; } //压栈 public boolean push(E e){ if(container.size()+1>cap){ return false; } return container.offerLast(e); } //弹栈 public E pop(){ return container.pollLast(); } //获取 public E peek(){ return container.peekLast(); } public int size(){ return this.container.size(); } }
package test129;public class Demo02 { public static void main(String[] args){ MyStackbackHistory = new MyStack (3); backHistory.push("www.1.com"); backHistory.push("www.2.com"); backHistory.push("www.3.com"); backHistory.push("www.4.com"); System.out.println("大小:"+backHistory.size()); //遍历 String item = null; while(null!=(item=backHistory.pop())){ System.out.println(item); } }}