【160天】尚学堂高琪Java300集视频精华笔记(129)

明天开始,专栏增加一个黑马程序员的课程更新。

其它容器收尾讲解

  1. 队列Queue与Deque(单向队列与双向队列)

  2. Enumeration(较老的接口,JDK1.5前使用频繁,维护旧系统会用到)

  3. Hashtable与Properties

  4. 引用类型(强、软、弱、虚)与WeakHashMap

  5. IdentityHashMap与EnumMap

  6. 同步控制与只读设置

  7. 开源工具包:

    1. Guava:Google Collection

    2. Apache Commons Collection

  8. 容器总结

第129集:其它容器——Queue接口-单向队列-模拟银行业务-自定义堆栈

  1. 模拟银行排队

    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();
    }
  2. 弹、压、获取头

    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);
        }
        
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值