package at.ac.univie.mminf.qskos4j.util;
import java.util.*;
public class RandomSubSet<T> extends AbstractSet<T>{
private Collection<T> subset;
private List<T> origElements;
private int subsetElementCount;
public RandomSubSet(Collection<T> origSet, float randomSubsetSize_percent)
{
origElements = new ArrayList<T>(origSet);
subsetElementCount = (int) ((origSet.size() * randomSubsetSize_percent) / (float) 100);
subset = new HashSet<T>(subsetElementCount);
pickRandomElements();
}
private void pickRandomElements()
{
Random randomGenerator = new Random();
for (int i = 0; i < subsetElementCount; i++) {
T randomElement;
do {
int origUriIndex = randomGenerator.nextInt(origElements.size());
randomElement = origElements.get(origUriIndex);
}
while (subset.contains(randomElement));
subset.add(randomElement);
}
}
@Override
public Iterator<T> iterator() {
return subset.iterator();
}
@Override
public int size() {
return subset.size();
}
}