01: import java.util.ArrayList; 02: 03: /** 04: A first-in, first-out collection of messages. This 05: implementation is not very efficient. We will consider 06: a more efficient implementation in chapter 3. 07: */ 08: public class MessageQueue 09: { 10: /** 11: Constructs an empty message queue. 12: */ 13: public MessageQueue() 14: { 15: queue = new ArrayList(); 16: } 17: 18: /** 19: Remove message at head. 20: @return message that has been removed from the queue 21: */ 22: public Message removeFirst() 23: { 24: return (Message) queue.remove(0); 25: } 26: 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: } 35: 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: } 44: 45: /** 46: Get message at head. 47: @return message that is at the head of the queue 48: */ 49: public Message getFirst() 50: { 51: return (Message) queue.get(0); 52: } 53: 54: private ArrayList queue; 55: }