KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > prefuse > util > collections > Queue


1 package prefuse.util.collections;
2
3 import java.util.HashMap JavaDoc;
4 import java.util.LinkedList JavaDoc;
5
6 /**
7  * Maintains a breadth-first-search queue as well as depth labels.
8  *
9  * @author <a HREF="http://jheer.org">jeffrey heer</a>
10  */

11 public class Queue {
12
13     // TODO: create an optimized implementation of this class
14

15     private LinkedList JavaDoc m_list = new LinkedList JavaDoc();
16     private HashMap JavaDoc m_map = new HashMap JavaDoc();
17     
18     public void clear() {
19         m_list.clear();
20         m_map.clear();
21     }
22     
23     public boolean isEmpty() {
24         return m_list.isEmpty();
25     }
26     
27     public void add(Object JavaDoc o, int depth) {
28         m_list.add(o);
29         visit(o, depth);
30     }
31     
32     public int getDepth(Object JavaDoc o) {
33         Integer JavaDoc d = (Integer JavaDoc)m_map.get(o);
34         return ( d==null ? -1 : d.intValue() );
35     }
36     
37     public void visit(Object JavaDoc o, int depth) {
38         m_map.put(o, new Integer JavaDoc(depth));
39     }
40     
41     public Object JavaDoc removeFirst() {
42         return m_list.removeFirst();
43     }
44     
45     public Object JavaDoc removeLast() {
46         return m_list.removeLast();
47     }
48     
49 } // end of class Queue
50
Popular Tags