public class Combinations extends Object implements Iterable<int[]>
Constructor and Description |
---|
Combinations(int n,
int k)
Creates an instance whose range is the k-element subsets of
{0, ..., n - 1} represented as
int[] arrays. |
Modifier and Type | Method and Description |
---|---|
Comparator<int[]> |
comparator()
Defines a lexicographic ordering of combinations.
|
int |
getK()
Gets the number of elements in each combination.
|
int |
getN()
Gets the size of the set from which combinations are drawn.
|
Iterator<int[]> |
iterator() |
public Combinations(int n, int k)
int[]
arrays.
The iteration order is lexicographic: the arrays returned by the
iterator
are sorted in descending order and
they are visited in lexicographic order with significance from
right to left.
For example, new Combinations(4, 2).iterator()
returns
an iterator that will generate the following sequence of arrays
on successive calls to
next()
:
[0, 1], [0, 2], [1, 2], [0, 3], [1, 3], [2, 3]
k == 0
an iterator containing an empty array is returned;
if k == n
an iterator containing [0, ..., n - 1] is returned.n
- Size of the set from which subsets are selected.k
- Size of the subsets to be enumerated.NotPositiveException
- if n < 0
.NumberIsTooLargeException
- if k > n
.public int getN()
public int getK()
public Comparator<int[]> comparator()
iterator
.
Its compare(int[],int[])
method will throw exceptions if
passed combinations that are inconsistent with this instance:
DimensionMismatchException
if the array lengths are not
equal to k
,OutOfRangeException
if an element of the array is not
within the interval [0, n
).Copyright © 2003–2016 The Apache Software Foundation. All rights reserved.