org.paukov.combinatorics3.PermutationWithRepetitionGenerator Maven / Gradle / Ivy
/**
* 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);
}
}