Class Frequency<T extends Comparable<T>>

  • Type Parameters:
    T - the element type
    All Implemented Interfaces:
    Serializable
    Direct Known Subclasses:
    LongFrequency

    public class Frequency<T extends Comparable<T>>
    extends Object
    implements Serializable
    Maintains a frequency distribution of Comparable values.

    The values are ordered using the default (natural order), unless a Comparator is supplied in the constructor.

    See Also:
    LongFrequency, Serialized Form
    • Constructor Detail

      • Frequency

        public Frequency()
        Default constructor.
      • Frequency

        public Frequency​(Comparator<? super T> comparator)
        Constructor allowing values Comparator to be specified.
        Parameters:
        comparator - Comparator used to order values
    • Method Detail

      • addValue

        public void addValue​(T v)
        Adds 1 to the frequency count for v.
        Parameters:
        v - the value to add.
      • incrementValue

        public void incrementValue​(T v,
                                   long increment)
        Increments the frequency count for v.
        Parameters:
        v - the value to add.
        increment - the amount by which the value should be incremented
      • clear

        public void clear()
        Clears the frequency table
      • valuesIterator

        public Iterator<T> valuesIterator()
        Returns an Iterator over the set of values that have been added.
        Returns:
        values Iterator
      • entrySetIterator

        public Iterator<Map.Entry<T,​Long>> entrySetIterator()
        Return an Iterator over the set of keys and values that have been added. Using the entry set to iterate is more efficient in the case where you need to access respective counts as well as values, since it doesn't require a "get" for every key...the value is provided in the Map.Entry.
        Returns:
        entry set Iterator
      • getSumFreq

        public long getSumFreq()
        Returns the sum of all frequencies.
        Returns:
        the total frequency count.
      • getCount

        public long getCount​(T v)
        Returns the number of values equal to v. Returns 0 if the value is not comparable.
        Parameters:
        v - the value to lookup.
        Returns:
        the frequency of v.
      • getUniqueCount

        public int getUniqueCount()
        Returns the number of values in the frequency table.
        Returns:
        the number of unique values that have been added to the frequency table.
        See Also:
        valuesIterator()
      • getPct

        public double getPct​(T v)
        Returns the percentage of values that are equal to v (as a proportion between 0 and 1).

        Returns Double.NaN if no values have been added.

        Parameters:
        v - the value to lookup
        Returns:
        the proportion of values equal to v
      • getCumFreq

        public long getCumFreq​(T v)
        Returns the cumulative frequency of values less than or equal to v.
        Parameters:
        v - the value to lookup.
        Returns:
        the proportion of values equal to v
      • getCumPct

        public double getCumPct​(T v)
        Returns the cumulative percentage of values less than or equal to v (as a proportion between 0 and 1).

        Returns Double.NaN if no values have been added.

        Parameters:
        v - the value to lookup
        Returns:
        the proportion of values less than or equal to v
      • getMode

        public List<T> getMode()
        Returns the mode value(s) in comparator order.
        Returns:
        a list containing the value(s) which appear most often.
      • merge

        public void merge​(Frequency<? extends T> other)
                   throws NullArgumentException
        Merge another Frequency object's counts into this instance. This Frequency's counts will be incremented (or set when not already set) by the counts represented by other.
        Parameters:
        other - the other Frequency object to be merged
        Throws:
        NullArgumentException - if other is null
      • toString

        public String toString()
        Return a string representation of this frequency distribution.
        Overrides:
        toString in class Object
        Returns:
        a string representation.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object