org.paukov.combinatorics3.PermutationWithRepetitionGenerator Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of combinatoricslib3 Show documentation
Show all versions of combinatoricslib3 Show documentation
Combinatorial objects stream generators for Java.
/**
* Combinatorics Library 3
* Copyright 2009-2016 Dmytro Paukov [email protected]
*/
package org.paukov.combinatorics3;
import java.util.*;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;
class PermutationWithRepetitionGenerator implements IGenerator> {
final List originalVector;
final int permutationLength;
PermutationWithRepetitionGenerator(
Collection originalVector, int permutationLength) {
this.originalVector = new ArrayList<>(originalVector);
this.permutationLength = permutationLength;
}
@Override
public Iterator> iterator() {
return new PermutationWithRepetitionIterator<>(this);
}
@Override
public Stream> stream() {
return StreamSupport.stream(Spliterators.spliteratorUnknownSize(iterator(), 0), false);
}
}