明天开始,专栏增加一个黑马程序员的课程更新。
其它容器收尾讲解
队列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<Request> que = new ArrayDeque<Request>(); //模拟排队情况 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<Request> 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<E> { //容器 private Deque<E> container = new ArrayDeque<E>(); //容量 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){
MyStack<String> backHistory = new MyStack<String>(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);
}
}
}