A convenience class that lets you iterator over a non-sorted collection

or iterator in a sorted manner.


git-svn-id: https://samskivert.googlecode.com/svn/trunk@1358 6335cc39-0255-0410-8fd6-9bcaacd3b74c
This commit is contained in:
ray
2003-12-17 21:58:06 +00:00
parent 22ef387cb0
commit f3d35142af
@@ -0,0 +1,78 @@
//
// $Id: SortedIterator.java,v 1.1 2003/12/17 21:58:06 ray Exp $
package com.samskivert.util;
import java.util.Collection;
import java.util.Comparator;
import java.util.Iterator;
/**
* An iterator that returns the elements from another iterator into
* some sorted order.
*/
public class SortedIterator implements Iterator
{
/**
* Construct a sorted iterator that iterates through the specified
* elements in natural order.
*/
public SortedIterator (Iterator itr)
{
this(itr, Comparators.COMPARABLE);
}
/**
* Construct a sorted iterator that iterates through the specified
* elements in the order according to the specified comparator.
*/
public SortedIterator (Iterator itr, Comparator comparator)
{
SortableArrayList list = new SortableArrayList();
while (itr.hasNext()) {
list.insertSorted(itr.next(), comparator);
}
_itr = list.iterator();
}
/**
* Construct a sorted iterator that iterates through the specified
* collection in natural order.
*/
public SortedIterator (Collection c)
{
this(c.iterator());
}
/**
* Construct a sorted iterator that iterates through the specified
* collection in the order according to the specified comparator.
*/
public SortedIterator (Collection c, Comparator comparator)
{
this(c.iterator(), comparator);
}
// documentation inherited from interface Iterator
public boolean hasNext ()
{
return _itr.hasNext();
}
// documentation inherited from interface Iterator
public Object next ()
{
return _itr.next();
}
// documentation inherited from interface Iterator
public void remove ()
{
// sadly, we cannot
throw new UnsupportedOperationException(
"Cannot remove from a SortedIterator");
}
/** The iterator we are a wrapper around. */
protected Iterator _itr;
}