微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在java中使用Array实现队列

队列是一种特殊类型的集合,旨在在处理之前保存元素,并以FIFO(先进先出)方式对元素进行排序。 它是java集合框架的一部分。

在这里,尝试使用数组实现Queue,并提供基本功能,如:enqueue(obj)dequeue()isEmpty()


package com.jb51.cc.util;

//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 class MyQueue {

    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);
        //queue.enqueue(7);
        //queue.enqueue(8);
    }

}

上面的类是一个简单队列,它的大小是固定的,它会在满时抛出异常。

可以像使用ArrayList实现使大小动态化。ArrayList实现并尝试在运行时实现队列大小的增加

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐