- java.lang.Object
-
- processing.data.FloatDict
-
public class FloatDict extends Object
A simple table class to use a String as a lookup for an float value.- See Also:
IntDict,StringDict
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description classFloatDict.Entry
-
Constructor Summary
Constructors Constructor Description FloatDict()FloatDict(int length)Create a new lookup with a specific size.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(Object[][] pairs)Constructor to allow (more intuitive) inline initialization, e.g.:FloatDict(String[] keys, float[] values)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(String key, float amount)voidclear()Remove all entries.FloatDictcopy()Returns a duplicate copy of this object.protected voidcreate(String what, float much)protected voidcrop()voiddiv(String key, float amount)Iterable<FloatDict.Entry>entries()Iterator<FloatDict.Entry>entryIterator()floatget(String key)Return a value for the specified key.floatget(String key, float alternate)FloatDictgetPercent()Sum all of the values in this dictionary, then return a new FloatDict of each key, divided by the total sum.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()intmaxIndex()StringmaxKey()The key for a max value; null if empty or everything is NaN (no max).floatmaxValue()The max value.intminIndex()StringminKey()floatminValue()voidmult(String key, float amount)voidprint()floatremove(String key)floatremoveIndex(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, float amount)voidsetIndex(int index, String key, float value)intsize()protected voidsortImpl(boolean useKeys, boolean reverse, boolean stable)voidsortKeys()Sort the keys alphabetically (ignoring case).voidsortKeysReverse()voidsortValues()Sort by values in descending order (largest value will be at [0]).voidsortValues(boolean stable)Set true to ensure that the order returned is identical.voidsortValuesReverse()voidsortValuesReverse(boolean stable)voidsub(String key, float amount)floatsum()doublesumDouble()voidswap(int a, int b)StringtoJSON()Return this dictionary as a String in JSON format.StringtoString()floatvalue(int index)float[]valueArray()Create a new array and copy each of the values into it.float[]valueArray(float[] array)Fill an already-allocated array with the values (more efficient than creating a new array each time).Iterator<Float>valueIterator()Iterable<Float>values()voidwrite(PrintWriter writer)Write tab-delimited entries out to
-
-
-
Field Detail
-
count
protected int count
Number of elements in the table
-
keys
protected String[] keys
-
values
protected float[] values
-
-
Constructor Detail
-
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 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<FloatDict.Entry> entries()
-
entryIterator
public Iterator<FloatDict.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 float value(int index)
-
valueArray
public float[] valueArray()
Create a new array and copy each of the values into it.
-
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)
-
setIndex
public void setIndex(int index, String key, float value)
-
hasKey
public boolean hasKey(String key)
-
add
public void add(String key, float amount)
-
sub
public void sub(String key, float amount)
-
mult
public void mult(String key, float amount)
-
div
public void div(String key, float amount)
-
minIndex
public int minIndex()
-
minKey
public String minKey()
-
minValue
public float minValue()
-
maxIndex
public int maxIndex()
-
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)
-
create
protected void create(String what, float much)
-
remove
public float remove(String key)
-
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()
-
sortValues
public void sortValues()
Sort by values in descending 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()
-
sortValuesReverse
public void sortValuesReverse(boolean stable)
-
sortImpl
protected void sortImpl(boolean useKeys, boolean reverse, 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.
-
-