Class FloatDict

java.lang.Object
processing.data.FloatDict

public class FloatDict extends Object
A simple class to use a String as a lookup for a float value. String "keys" are associated with floating-point values.
See Also:
  • Constructor Details

    • FloatDict

      public FloatDict()
    • FloatDict

      public FloatDict(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.
    • FloatDict

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

      public FloatDict(String[] keys, float[] values)
    • FloatDict

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

    • size

      public int size()
      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 from the data structure.
    • entries

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

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

      public String key(int index)
    • keys

      public Iterable<String> keys()
      Return the internal array being used to store the keys.
    • keyIterator

      public Iterator<String> keyIterator()
    • keyArray

      public String[] keyArray()
      Return a copy of the internal keys array. In contrast to the keys() method, this array can be modified.
    • keyArray

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

      public float value(int index)
    • values

      public Iterable<Float> values()
      Return the internal array being used to store the values.
    • valueIterator

      public Iterator<Float> valueIterator()
    • valueArray

      public float[] valueArray()
      The version of this method without a parameter creates a new array and copies each of the values into it. The version with the float[] parameters fills 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.
    • valueArray

      public float[] valueArray(float[] 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 float get(String key)
      Return a value for the specified key.
    • get

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

      public void set(String key, float amount)
      Create a new key/value pair or change the value of one.
    • setIndex

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

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

      public void add(String key, float amount)
      Add to a value. If the key does not exist, a new pair is initialized with the value supplied.
    • sub

      public void sub(String key, float amount)
      Subtract from a value.
    • mult

      public void mult(String key, float amount)
      Multiply a value.
    • div

      public void div(String key, float amount)
      Divide a value.
    • minIndex

      public int minIndex()
      Return the smallest value
    • minKey

      public String minKey()
    • minValue

      public float minValue()
    • maxIndex

      public int maxIndex()
      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 float maxValue()
      The max value. (Or NaN if no entries or they're all NaN.)
    • sum

      public float sum()
    • sumDouble

      public double sumDouble()
    • index

      public int index(String what)
    • remove

      public float remove(String key)
      Remove a key/value pair.
    • removeIndex

      public float 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).
    • sortKeysReverse

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

      public void sortValues()
      Sort by values in ascending order (largest value will be at [0]).
    • 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()
      Sort by values in descending order. The largest value will be at [0].
    • sortValuesReverse

      public void sortValuesReverse(boolean stable)
    • getPercent

      public FloatDict 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 FloatDict 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