Package processing.data
Class LongDict
java.lang.Object
processing.data.LongDict
A simple class to use a String as a lookup for an int value.
- See Also:
-
Nested Class Summary
Nested Classes -
Constructor Summary
ConstructorsConstructorDescriptionLongDict()
LongDict
(int length) Create a new lookup with a specific size.LongDict
(BufferedReader reader) Read a set of entries from a Reader that has each key/value pair on a single line, separated by a tab.Constructor to allow (more intuitive) inline initialization, e.g.: -
Method Summary
Modifier and TypeMethodDescriptionvoid
Add to a valuevoid
clear()
Remove all entries.copy()
Returns a duplicate copy of this object.void
Divide a valueentries()
long
Return a value for the specified key.long
Sum all of the values in this dictionary, then return a new FloatDict of each key, divided by the total sum.boolean
Check if a key is a part of the data structurevoid
Increase the value associated with a specific key by 1.void
Merge another dictionary into this one.int
key
(int index) String[]
keyArray()
Return a copy of the internal keys array.String[]
keys()
int
maxIndex()
maxKey()
return the key corresponding to the maximum value or null if no entrieslong
maxValue()
int
minIndex()
minKey()
long
minValue()
void
Multiply a valuevoid
print()
long
Remove a key/value pairlong
removeIndex
(int index) void
resize
(int length) Resize the internal data, this can only be used to shrink the list.void
Save tab-delimited entries to a file (TSV format, UTF-8 encoding)void
Create a new key/value pair or change the value of one.void
int
size()
Returns the number of key/value pairsvoid
sortKeys()
Sort the keys alphabetically (ignoring case).void
Sort the keys alphabetically in reverse (ignoring case).void
Sort by values in ascending order.void
sortValues
(boolean stable) Set true to ensure that the order returned is identical.void
Sort by values in descending order.void
sortValuesReverse
(boolean stable) void
Subtract from a valuelong
sum()
void
swap
(int a, int b) toJSON()
Return this dictionary as a String in JSON format.toString()
long
value
(int index) int[]
Create a new array and copy each of the values into it.int[]
valueArray
(int[] array) Fill an already-allocated array with the values (more efficient than creating a new array each time).values()
Return the internal array being used to store the valuesvoid
write
(PrintWriter writer) Write tab-delimited entries to a PrintWriter
-
Constructor Details
-
LongDict
public LongDict() -
LongDict
public LongDict(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. -
LongDict
Read a set of entries from a Reader that has each key/value pair on a single line, separated by a tab. -
LongDict
-
LongDict
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. -
entries
-
entryIterator
-
key
-
keys
-
keyIterator
-
keyArray
Return a copy of the internal keys array. This array can be modified. -
keyArray
-
value
public long value(int index) -
values
Return the internal array being used to store the values -
valueIterator
-
valueArray
public int[] valueArray()Create a new array and copy each of the values into it. -
valueArray
public int[] valueArray(int[] 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.- Parameters:
array
- values to copy into the array
-
get
Return a value for the specified key. -
get
-
set
Create a new key/value pair or change the value of one. -
setIndex
-
hasKey
Check if a key is a part of the data structure -
increment
Increase the value associated with a specific key by 1. -
increment
Merge another dictionary into this one. Calling this increment() since it doesn't make sense in practice for the other dictionary types, even though it's technically an add(). -
add
Add to a value -
sub
Subtract from a value -
mult
Multiply a value -
div
Divide a value -
minIndex
public int minIndex() -
minKey
-
minValue
public long minValue() -
maxIndex
public int maxIndex() -
maxKey
return the key corresponding to the maximum value or null if no entries -
maxValue
public long maxValue() -
sum
public long sum() -
index
-
remove
Remove a key/value pair -
removeIndex
public long 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. The smallest 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
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:
- an IntDict with the original keys, mapped to their pct of the total
-
copy
Returns a duplicate copy of this object. -
print
public void print() -
save
Save tab-delimited entries to a file (TSV format, UTF-8 encoding) -
write
Write tab-delimited entries to a PrintWriter -
toJSON
Return this dictionary as a String in JSON format. -
toString
-