001    package aima.datastructures;
002    
003    import java.util.ArrayList;
004    import java.util.List;
005    
006    import aima.util.AbstractQueue;
007    
008    /**
009     * @author Ravi Mohan
010     * 
011     */
012    public class LIFOQueue extends AbstractQueue {
013    
014            @Override
015            public void add(Object anItem) {
016                    super.addToFront(anItem);
017            }
018    
019            @Override
020            public void add(List items) {
021                    List<Object> reversed = new ArrayList<Object>();
022                    for (int i = items.size() - 1; i > -1; i--) {
023                            reversed.add(items.get(i));
024                    }
025                    super.addToFront(reversed);
026            }
027    
028            @Override
029            public Object remove() {
030                    return super.removeFirst();
031            }
032    
033            @Override
034            public Object get() {
035                    return super.getFirst();
036            }
037    }