Class PermutationIterator<E>
- java.lang.Object
-
- org.apache.commons.collections4.iterators.PermutationIterator<E>
-
- Type Parameters:
E- the type of the objects being permuted
public class PermutationIterator<E> extends Object implements Iterator<List<E>>
This iterator creates permutations of an input collection, using the Steinhaus-Johnson-Trotter algorithm (also called plain changes).The iterator will return exactly n! permutations of the input collection. The
remove()operation is not supported, and will throw anUnsupportedOperationException.NOTE: in case an empty collection is provided, the iterator will return exactly one empty list as result, as 0! = 1.
- Since:
- 4.0
-
-
Constructor Summary
Constructors Constructor Description PermutationIterator(Collection<? extends E> coll)Standard constructor for this class.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanhasNext()Indicates if there are more permutation available.List<E>next()Returns the next permutation of the input collection.voidremove()-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.util.Iterator
forEachRemaining
-
-
-
-
Constructor Detail
-
PermutationIterator
public PermutationIterator(Collection<? extends E> coll)
Standard constructor for this class.- Parameters:
coll- the collection to generate permutations for- Throws:
NullPointerException- if coll is null
-
-
Method Detail
-
hasNext
public boolean hasNext()
Indicates if there are more permutation available.
-
next
public List<E> next()
Returns the next permutation of the input collection.- Specified by:
nextin interfaceIterator<E>- Returns:
- a list of the permutator's elements representing a permutation
- Throws:
NoSuchElementException- if there are no more permutations
-
-