自定义Queue

原文地址

Queue(队列)是一种特殊类型的集合,旨在使用先进先出方式处理和排序之前保存元素。

下面使用 Array 实现 Queue,并提供诸如enqueue(obj),dequeue()和isEmpty()等基本功能。

/**
 * <p></p>
 *
 * @author 三产
 * @version 1.0
 * @date 2017-03-24
 * @QQGroup 213732117
 * @website http://www.coderknock.com
 * @copyright Copyright 2017 拿客 coderknock.com  All rights reserved.
 * @since JDK 1.8
 */
public class MyQueue {
    
        //CONSTRUCTION: with no initializer
        //
        // ******************PUBLIC OPERATIONS*********************
        // void enqueue( obj )      --> Insert obj
        // Object dequeue( )      --> Return and remove least recent item
        // boolean isEmpty( )     --> Return true if empty; else false

        public static final int DEFAULT_SIZE=5;

        private Object data[];

        private int index;

        public MyQueue(){
            data=new Object[DEFAULT_SIZE];
        }

        public boolean isEmpty(){
            return index==0;
        }

        public void enqueue(Object obj) throws Exception{
            if(index==DEFAULT_SIZE-1){
                throw new Exception("Queue is full. Dequeue some objects");
            }
            this.data[index]=obj;
            this.index++;
        }

        public Object dequeue() throws Exception{
            if(isEmpty())throw new Exception("Queue is empty");
            Object obj=this.data[0];
            for(int i =0; i<this.index-1; i++){
                data[i]=data[i+1];
            }
            this.index--;
            return obj;

        }

        public static void main(String[] args) throws Exception {

            MyQueue queue = new MyQueue();
            queue.enqueue("1");
            System.out.println(queue.dequeue());

            queue.enqueue("2");
            queue.enqueue("3");
            queue.enqueue("4");
            System.out.println(queue.dequeue());

            queue.enqueue("5");
            queue.enqueue("6");
            System.out.println(queue.dequeue());
            queue.enqueue("7");

            /**
             * 这里是队列超出默认大小的时候会抛出的异常
             * Exception in thread "main" java.lang.Exception: Queue is full. Dequeue some objects
             * at MyQueue.enqueue(MyQueue.java:37)
             * at MyQueue.main(MyQueue.java:69)
             */
            
            queue.enqueue("8");
            System.out.println(queue.dequeue());
        }

}

转载于:https://my.oschina.net/coderknock/blog/866277

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值