Class DoubleDict

java.lang.Object
processing.data.DoubleDict

public class DoubleDict extends Object
A simple table class to use a String as a lookup for an double value.
See Also:
  • Constructor Details

    • DoubleDict

      public DoubleDict()
    • DoubleDict

      public DoubleDict(int length)
      Create a new lookup with a specific size. This is more efficient than not specifying a size. Use it when you know the rough size of the thing you're creating.
    • DoubleDict

      public DoubleDict(BufferedReader reader)
      Read a set of entries from a Reader that has each key/value pair on a single line, separated by a tab.
    • DoubleDict

      public DoubleDict(String[] keys, double[] values)
    • DoubleDict

      public DoubleDict(Object[][] pairs)
      Constructor to allow (more intuitive) inline initialization, e.g.:
       new FloatDict(new Object[][] {
         { "key1", 1 },
         { "key2", 2 }
       });
       
    • DoubleDict

      public DoubleDict(Map<String,Double> incoming)
  • Method Details

    • size

      public int size()
      In brief:
      Returns the number of key/value pairs
    • resize

      public void resize(int length)
      Resize the internal data, this can only be used to shrink the list. Helpful for situations like sorting and then grabbing the top 50 entries.
    • clear

      public void clear()
      Remove all entries.
      In brief:
      Remove all entries
    • entries

      public Iterable<DoubleDict.Entry> entries()
    • entryIterator

      public Iterator<DoubleDict.Entry> entryIterator()
    • key

      public String key(int index)
    • keys

      public Iterable<String> keys()
    • keyIterator

      public Iterator<String> keyIterator()
    • keyArray

      public String[] keyArray()
      Return a copy of the internal keys array. This array can be modified.
      In brief:
      Return a copy of the internal keys array
    • keyArray

      public String[] keyArray(String[] outgoing)
    • value

      public double value(int index)
    • values

      public Iterable<Double> values()
      In brief:
      Return the internal array being used to store the values
    • valueIterator

      public Iterator<Double> valueIterator()
    • valueArray

      public double[] valueArray()
      Create a new array and copy each of the values into it.
      In brief:
      Create a new array and copy each of the values into it
    • valueArray

      public double[] valueArray(double[] array)
      Fill an already-allocated array with the values (more efficient than creating a new array each time). If 'array' is null, or not the same size as the number of values, a new array will be allocated and returned.
    • get

      public double get(String key)
      Return a value for the specified key.
      In brief:
      Return a value for the specified key
    • get

      public double get(String key, double alternate)
    • set

      public void set(String key, double amount)
      In brief:
      Create a new key/value pair or change the value of one
    • setIndex

      public void setIndex(int index, String key, double value)
    • hasKey

      public boolean hasKey(String key)
      In brief:
      Check if a key is a part of the data structure
    • add

      public void add(String key, double amount)
      In brief:
      Add to a value
    • sub

      public void sub(String key, double amount)
      In brief:
      Subtract from a value
    • mult

      public void mult(String key, double amount)
      In brief:
      Multiply a value
    • div

      public void div(String key, double amount)
      In brief:
      Divide a value
    • minIndex

      public int minIndex()
      In brief:
      Return the smallest value
    • minKey

      public String minKey()
    • minValue

      public double minValue()
    • maxIndex

      public int maxIndex()
      In brief:
      Return the largest value
    • maxKey

      public String maxKey()
      The key for a max value; null if empty or everything is NaN (no max).
    • maxValue

      public double maxValue()
      The max value. (Or NaN if no entries or they're all NaN.)
    • sum

      public double sum()
    • index

      public int index(String what)
    • remove

      public double remove(String key)
      In brief:
      Remove a key/value pair
    • removeIndex

      public double removeIndex(int index)
    • swap

      public void swap(int a, int b)
    • sortKeys

      public void sortKeys()
      Sort the keys alphabetically (ignoring case). Uses the value as a tie-breaker (only really possible with a key that has a case change).
      In brief:
      Sort the keys alphabetically
    • sortKeysReverse

      public void sortKeysReverse()
      In brief:
      Sort the keys alphabetically in reverse
    • sortValues

      public void sortValues()
      Sort by values in descending order (largest value will be at [0]).
      In brief:
      Sort by values in ascending order
    • sortValues

      public void sortValues(boolean stable)
      Set true to ensure that the order returned is identical. Slightly slower because the tie-breaker for identical values compares the keys.
      Parameters:
      stable -
    • sortValuesReverse

      public void sortValuesReverse()
      In brief:
      Sort by values in descending order
    • sortValuesReverse

      public void sortValuesReverse(boolean stable)
    • getPercent

      public DoubleDict getPercent()
      Sum all of the values in this dictionary, then return a new FloatDict of each key, divided by the total sum. The total for all values will be ~1.0.
      Returns:
      a FloatDict with the original keys, mapped to their pct of the total
    • copy

      public DoubleDict copy()
      Returns a duplicate copy of this object.
    • print

      public void print()
    • save

      public void save(File file)
      Save tab-delimited entries to a file (TSV format, UTF-8 encoding)
    • write

      public void write(PrintWriter writer)
      Write tab-delimited entries out to
      Parameters:
      writer -
    • toJSON

      public String toJSON()
      Return this dictionary as a String in JSON format.
    • toString

      public String toString()
      Overrides:
      toString in class Object