package org.streaminer.stream.frequency; import java.util.Collections; import java.util.List; import org.streaminer.stream.frequency.util.CountEntry; /** * * @author Maycon Viana Bordin <mayconbordin@gmail.com> * @param <T> The type of object that will be stored */ public abstract class BaseFrequency<T> implements IRichFrequency<T> { protected double defaultMinSupport = 0.1d; public BaseFrequency() { } public BaseFrequency(double minSupport) { defaultMinSupport = minSupport; } @Override public boolean add(T item) throws FrequencyException { return add(item, 1); } public List<CountEntry<T>> peek(int k) { return peek(k, defaultMinSupport); } public List<CountEntry<T>> peek(int k, double minSupport) { List<CountEntry<T>> items = getFrequentItems(minSupport); Collections.sort(items); if (items.size() > k) return items.subList(0, k); else return items; } public List<CountEntry<T>> getFrequentItems() { return getFrequentItems(defaultMinSupport); } public double getDefaultMinSupport() { return defaultMinSupport; } public void setDefaultMinSupport(double defaultMinSupport) { this.defaultMinSupport = defaultMinSupport; } }