- java.lang.Object
-
- processing.data.StringDict
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description classStringDict.Entry
-
Constructor Summary
Constructors Constructor Description StringDict()StringDict(int length)Create a new lookup pre-allocated to a specific length.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(String[][] pairs)Constructor to allow (more intuitive) inline initialization, e.g.:StringDict(String[] keys, String[] values)StringDict(TableRow row)Create a dictionary that maps between column titles and cell entries in a TableRow.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclear()Remove all entries.StringDictcopy()Returns a duplicate copy of this object.protected voidcreate(String key, String value)protected voidcrop()Iterable<StringDict.Entry>entries()Iterator<StringDict.Entry>entryIterator()Stringget(String key)Return a value for the specified key.Stringget(String key, String alternate)booleanhasKey(String key)intindex(String what)Stringkey(int index)String[]keyArray()Return a copy of the internal keys array.String[]keyArray(String[] outgoing)Iterator<String>keyIterator()Iterable<String>keys()voidprint()Stringremove(String key)StringremoveIndex(int index)voidresize(int length)Resize the internal data, this can only be used to shrink the list.voidsave(File file)Save tab-delimited entries to a file (TSV format, UTF-8 encoding)voidset(String key, String value)voidsetIndex(int index, String key, String value)intsize()protected voidsortImpl(boolean useKeys, boolean reverse)voidsortKeys()Sort the keys alphabetically (ignoring case).voidsortKeysReverse()voidsortValues()Sort by values in descending order (largest value will be at [0]).voidsortValuesReverse()voidswap(int a, int b)StringtoJSON()Return this dictionary as a String in JSON format.StringtoString()Stringvalue(int index)String[]valueArray()Create a new array and copy each of the values into it.String[]valueArray(String[] array)Fill an already-allocated array with the values (more efficient than creating a new array each time).Iterator<String>valueIterator()Iterable<String>values()voidwrite(PrintWriter writer)Write tab-delimited entries to a PrintWriter
-
-
-
Constructor Detail
-
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[][] 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 Detail
-
size
public int size()
-
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)
-
crop
protected void crop()
-
keyArray
public String[] keyArray()
Return a copy of the internal keys array. This array can be modified.
-
value
public String value(int index)
-
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.
-
index
public int index(String what)
-
hasKey
public boolean hasKey(String key)
-
removeIndex
public String 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()
-
sortValues
public void sortValues()
Sort by values in descending order (largest value will be at [0]).
-
sortValuesReverse
public void sortValuesReverse()
-
sortImpl
protected void sortImpl(boolean useKeys, boolean reverse)
-
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.
-
-