Class PermutationIterator<E>

java.lang.Object
org.apache.commons.collections4.iterators.PermutationIterator<E>
Type Parameters:
E - the type of the objects being permuted
All Implemented Interfaces:
Iterator<List<E>>

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 an UnsupportedOperationException.

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 Details

  • Method Details

    • hasNext

      public boolean hasNext()
      Indicates if there are more permutation available.
      Specified by:
      hasNext in interface Iterator<E>
      Returns:
      true if there are more permutations, otherwise false
    • next

      public List<E> next()
      Returns the next permutation of the input collection.
      Specified by:
      next in interface Iterator<E>
      Returns:
      a list of the permutator's elements representing a permutation
      Throws:
      NoSuchElementException - if there are no more permutations
    • remove

      public void remove()
      Specified by:
      remove in interface Iterator<E>