Class StringDict

java.lang.Object
processing.data.StringDict

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

    • StringDict

      public StringDict()
    • StringDict

      public StringDict(int length)
      Create a new lookup pre-allocated to a specific length. This will not change the size(), but is more efficient than not specifying a length. Use it when you know the rough size of the thing you're creating.
    • StringDict

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

      public StringDict(String[] keys, String[] values)
    • StringDict

      public StringDict(String[][] pairs)
      Constructor to allow (more intuitive) inline initialization, e.g.:
       new StringDict(new String[][] {
         { "key1", "value1" },
         { "key2", "value2" }
       });
       
      It's no Python, but beats a static { } block with HashMap.put() statements.
    • StringDict

      public StringDict(TableRow row)
      Create a dictionary that maps between column titles and cell entries in a TableRow. If two columns have the same name, the later column's values will override the earlier values.
  • 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.
    • entries

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

      public Iterator<StringDict.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.
    • keyArray

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

      public String value(int index)
    • values

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

      public Iterator<String> valueIterator()
    • valueArray

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

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

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

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

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

      public int index(String what)
    • hasKey

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

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

      public String removeIndex(int index)
    • swap

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

      public void sortKeys()
      Sort the keys alphabetically.
    • sortKeysReverse

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

      public void sortValues()
      Sort by values in descending order.
    • sortValuesReverse

      public void sortValuesReverse()
      Sort by values in descending order
    • copy

      public StringDict 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 to a PrintWriter
    • toJSON

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

      public String toString()
      Overrides:
      toString in class Object