Source of MessageQueue.java


  1: import java.util.ArrayList;

  3: /**
  4:    A first-in, first-out collection of messages. This
  5:    implementation is not very efficient. We will consider
  6:    a more efficient implementation in chapter 3.
  7: */
  8: public class MessageQueue
  9: {
 10:    /**
 11:       Constructs an empty message queue.
 12:    */
 13:    public MessageQueue()
 14:    {
 15:       queue = new ArrayList<Message>();
 16:    }

 18:    /**
 19:       Remove message at head.
 20:       @return message that has been removed from the queue
 21:    */
 22:    public Message remove()
 23:    {
 24:       return queue.remove(0);
 25:    }

 27:    /**
 28:       Append message at tail.
 29:       @param newMessage the message to be appended
 30:    */
 31:    public void add(Message newMessage)
 32:    {
 33:       queue.add(newMessage);
 34:    }

 36:    /**
 37:       Get the total number of messages in the queue.
 38:       @return the total number of messages in the queue
 39:    */
 40:    public int size()
 41:    {
 42:       return queue.size();
 43:    }

 45:    /**
 46:       Get message at head.
 47:       @return message that is at the head of the queue, or null
 48:       if the queue is empty
 49:    */
 50:    public Message peek()
 51:    {
 52:       if (queue.size() == 0) return null;
 53:       else return queue.get(0);
 54:    }

 56:    private ArrayList<Message> queue;
 57: }