Package groovy.util
Class PermutationGenerator<E>
- java.lang.Object
 - 
- groovy.util.PermutationGenerator<E>
 
 
- 
public class PermutationGenerator<E> extends Object implements Iterator<List<E>>
Systematically generate permutations. Adapted from Java Code by Michael Gilleland (released with no restrictions) using an algorithm described here: Kenneth H. Rosen, Discrete Mathematics and Its Applications, 2nd edition (NY: McGraw-Hill, 1991), pp. 282-284 
- 
- 
Constructor Summary
Constructors Constructor Description PermutationGenerator(Iterable<E> items)PermutationGenerator(Collection<E> items)WARNING: Don't make n too large. 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description BigIntegergetTotal()booleanhasNext()List<E>next()Generate next permutation (algorithm from Rosen p.voidremove()voidreset()- 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 
- 
Methods inherited from interface java.util.Iterator
forEachRemaining 
 - 
 
 - 
 
- 
- 
Constructor Detail
- 
PermutationGenerator
public PermutationGenerator(Collection<E> items)
WARNING: Don't make n too large. Recall that the number of permutations is n! which can be very large, even when n is as small as 20 -- 20! = 2,432,902,008,176,640,000 and 21! is too big to fit into a Java long, which is why we use BigInteger instead.- Parameters:
 items- the items to permute
 
 - 
 
- 
Method Detail
- 
reset
public void reset()
 
- 
getTotal
public BigInteger getTotal()
 
 - 
 
 -