KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > prefuse > data > util > SortedTupleIterator


1 /**
2  *
3  */

4 package prefuse.data.util;
5
6 import java.util.ArrayList JavaDoc;
7 import java.util.Collections JavaDoc;
8 import java.util.Comparator JavaDoc;
9 import java.util.Iterator JavaDoc;
10
11 import prefuse.data.Tuple;
12
13 /**
14  * Iterator that provides a sorted iteration over a set of tuples.
15  * @author <a HREF="http://jheer.org">jeffrey heer</a>
16  */

17 public class SortedTupleIterator implements Iterator JavaDoc {
18
19     private ArrayList JavaDoc m_tuples;
20     private Comparator JavaDoc m_cmp;
21     private Iterator JavaDoc m_iter;
22     
23     /**
24      * Create a new SortedTupleIterator that sorts tuples in the given
25      * iterator using the given comparator.
26      * @param iter the source iterator of tuples
27      * @param c the comparator to use for sorting
28      */

29     public SortedTupleIterator(Iterator JavaDoc iter, Comparator JavaDoc c) {
30         this(iter, 128, c);
31     }
32     
33     /**
34      * Create a new SortedTupleIterator that sorts tuples in the given
35      * iterator using the given comparator.
36      * @param iter the source iterator of tuples
37      * @param size the expected number of tuples in the iterator
38      * @param c the comparator to use for sorting
39      */

40     public SortedTupleIterator(Iterator JavaDoc iter, int size, Comparator JavaDoc c) {
41         m_tuples = new ArrayList JavaDoc(size);
42         init(iter, c);
43     }
44     
45     /**
46      * Initialize this iterator for the given source iterator and
47      * comparator.
48      * @param iter the source iterator of tuples
49      * @param c the comparator to use for sorting
50      */

51     public void init(Iterator JavaDoc iter, Comparator JavaDoc c) {
52         m_tuples.clear();
53         m_cmp = c;
54         
55         // populate tuple list
56
while ( iter.hasNext() ) {
57             Tuple t = (Tuple)iter.next();
58             m_tuples.add(t);
59         }
60         // sort tuple list
61
Collections.sort(m_tuples, m_cmp);
62         // create sorted iterator
63
m_iter = m_tuples.iterator();
64     }
65     
66     /**
67      * @see java.util.Iterator#hasNext()
68      */

69     public boolean hasNext() {
70         return m_iter.hasNext();
71     }
72
73     /**
74      * @see java.util.Iterator#next()
75      */

76     public Object JavaDoc next() {
77         return m_iter.next();
78     }
79
80     /**
81      * Throws an UnsupportedOperationException
82      * @see java.util.Iterator#remove()
83      * @throws UnsupportedOperationException
84      */

85     public void remove() {
86         throw new UnsupportedOperationException JavaDoc();
87     }
88
89 } // end of class SortedTupleIterator
Popular Tags