public class MessageQueue
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: }