Groovy Documentation

## groovy.util
[Java] Class PermutationGenerator

    java.lang.Object
      groovy.util.PermutationGenerator

All Implemented Interfaces:
  java.util.Iterator

    public class PermutationGenerator
    extends java.lang.Object

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
`PermutationGenerator(java.util.Collection items)` WARNING: Don't make n too large.

Method Summary
`java.math.BigInteger` | `getTotal()`
`boolean` | `hasNext()`
`java.util.List` | `next()` Generate next permutation (algorithm from Rosen p. 284)
`void` | `remove()`
`void` | `reset()`

Methods inherited from class java.lang.Object
java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()

Constructor Detail

### PermutationGenerator

    public PermutationGenerator(java.util.Collection 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

### getTotal

    public java.math.BigInteger getTotal()

### hasNext

    public boolean hasNext()

### next

    public java.util.List next()

  Generate next permutation (algorithm from Rosen p. 284)
  Returns:
    the items permuted

### remove

    public void remove()

### reset

    public void reset()

Groovy Documentation