Package org.jfree.data
Class DefaultKeyedValues<K extends java.lang.Comparable<K>>
- java.lang.Object
-
- org.jfree.data.DefaultKeyedValues<K>
-
- Type Parameters:
K
- the key type (String
is a good default).
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,PublicCloneable
,KeyedValues<K>
,Values
public class DefaultKeyedValues<K extends java.lang.Comparable<K>> extends java.lang.Object implements KeyedValues<K>, java.lang.Cloneable, PublicCloneable, java.io.Serializable
An ordered list of (key, value) items. This class provides a default implementation of theKeyedValues
interface.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<K,java.lang.Integer>
indexMap
Contains (key, Integer) mappings, where the Integer is the index for the key in the list.private java.util.List<K>
keys
Storage for the keys.private static long
serialVersionUID
For serialization.private java.util.List<java.lang.Number>
values
Storage for the values.
-
Constructor Summary
Constructors Constructor Description DefaultKeyedValues()
Creates a new collection (initially empty).
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addValue(K key, double value)
Updates an existing value, or adds a new value to the collection.void
addValue(K key, java.lang.Number value)
Adds a new value to the collection, or updates an existing value.void
clear()
Clears all values from the collection.java.lang.Object
clone()
Returns a clone.boolean
equals(java.lang.Object obj)
Tests if this object is equal to another.int
getIndex(K key)
Returns the index for a given key.int
getItemCount()
Returns the number of items (values) in the collection.K
getKey(int index)
Returns a key.java.util.List<K>
getKeys()
Returns the keys for the values in the collection.java.lang.Number
getValue(int item)
Returns a value.java.lang.Number
getValue(K key)
Returns the value for a given key.int
hashCode()
Returns a hash code.void
insertValue(int position, K key, double value)
Inserts a new value at the specified position in the dataset or, if there is an existing item with the specified key, updates the value for that item and moves it to the specified position.void
insertValue(int position, K key, java.lang.Number value)
Inserts a new value at the specified position in the dataset or, if there is an existing item with the specified key, updates the value for that item and moves it to the specified position.private void
rebuildIndex()
Rebuilds the key to indexed-position mapping after an positioned insert or a remove operation.void
removeValue(int index)
Removes a value from the collection.void
removeValue(K key)
Removes a value from the collection.void
setValue(K key, double value)
Updates an existing value, or adds a new value to the collection.void
setValue(K key, java.lang.Number value)
Updates an existing value, or adds a new value to the collection.void
sortByKeys(SortOrder order)
Sorts the items in the list by key.void
sortByValues(SortOrder order)
Sorts the items in the list by value.
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
For serialization.- See Also:
- Constant Field Values
-
values
private java.util.List<java.lang.Number> values
Storage for the values.
-
-
Method Detail
-
getItemCount
public int getItemCount()
Returns the number of items (values) in the collection.- Specified by:
getItemCount
in interfaceValues
- Returns:
- The item count.
-
getValue
public java.lang.Number getValue(int item)
Returns a value.
-
getKey
public K getKey(int index)
Returns a key.- Specified by:
getKey
in interfaceKeyedValues<K extends java.lang.Comparable<K>>
- Parameters:
index
- the item index (zero-based).- Returns:
- The row key.
- Throws:
java.lang.IndexOutOfBoundsException
- ifitem
is out of bounds.
-
getIndex
public int getIndex(K key)
Returns the index for a given key.- Specified by:
getIndex
in interfaceKeyedValues<K extends java.lang.Comparable<K>>
- Parameters:
key
- the key (null
not permitted).- Returns:
- The index, or
-1
if the key is not recognised. - Throws:
java.lang.IllegalArgumentException
- ifkey
isnull
.
-
getKeys
public java.util.List<K> getKeys()
Returns the keys for the values in the collection.- Specified by:
getKeys
in interfaceKeyedValues<K extends java.lang.Comparable<K>>
- Returns:
- The keys (never
null
).
-
getValue
public java.lang.Number getValue(K key)
Returns the value for a given key.- Specified by:
getValue
in interfaceKeyedValues<K extends java.lang.Comparable<K>>
- Parameters:
key
- the key (null
not permitted).- Returns:
- The value (possibly
null
). - Throws:
UnknownKeyException
- if the key is not recognised.- See Also:
getValue(int)
-
addValue
public void addValue(K key, double value)
Updates an existing value, or adds a new value to the collection.- Parameters:
key
- the key (null
not permitted).value
- the value.- See Also:
addValue(Comparable, Number)
-
addValue
public void addValue(K key, java.lang.Number value)
Adds a new value to the collection, or updates an existing value. This method passes control directly to thesetValue(Comparable, Number)
method.- Parameters:
key
- the key (null
not permitted).value
- the value (null
permitted).
-
setValue
public void setValue(K key, double value)
Updates an existing value, or adds a new value to the collection.- Parameters:
key
- the key (null
not permitted).value
- the value.
-
setValue
public void setValue(K key, java.lang.Number value)
Updates an existing value, or adds a new value to the collection.- Parameters:
key
- the key (null
not permitted).value
- the value (null
permitted).
-
insertValue
public void insertValue(int position, K key, double value)
Inserts a new value at the specified position in the dataset or, if there is an existing item with the specified key, updates the value for that item and moves it to the specified position.- Parameters:
position
- the position (in the range 0 to getItemCount()).key
- the key (null
not permitted).value
- the value.
-
insertValue
public void insertValue(int position, K key, java.lang.Number value)
Inserts a new value at the specified position in the dataset or, if there is an existing item with the specified key, updates the value for that item and moves it to the specified position.- Parameters:
position
- the position (in the range 0 to getItemCount()).key
- the key (null
not permitted).value
- the value (null
permitted).
-
rebuildIndex
private void rebuildIndex()
Rebuilds the key to indexed-position mapping after an positioned insert or a remove operation.
-
removeValue
public void removeValue(int index)
Removes a value from the collection.- Parameters:
index
- the index of the item to remove (in the range0
togetItemCount() -1
).- Throws:
java.lang.IndexOutOfBoundsException
- ifindex
is not within the specified range.
-
removeValue
public void removeValue(K key)
Removes a value from the collection.- Parameters:
key
- the item key (null
not permitted).- Throws:
java.lang.IllegalArgumentException
- ifkey
isnull
.UnknownKeyException
- ifkey
is not recognised.
-
clear
public void clear()
Clears all values from the collection.
-
sortByKeys
public void sortByKeys(SortOrder order)
Sorts the items in the list by key.- Parameters:
order
- the sort order (null
not permitted).
-
sortByValues
public void sortByValues(SortOrder order)
Sorts the items in the list by value. If the list containsnull
values, they will sort to the end of the list, irrespective of the sort order.- Parameters:
order
- the sort order (null
not permitted).
-
equals
public boolean equals(java.lang.Object obj)
Tests if this object is equal to another.- Overrides:
equals
in classjava.lang.Object
- Parameters:
obj
- the object (null
permitted).- Returns:
- A boolean.
-
hashCode
public int hashCode()
Returns a hash code.- Overrides:
hashCode
in classjava.lang.Object
- Returns:
- A hash code.
-
clone
public java.lang.Object clone() throws java.lang.CloneNotSupportedException
Returns a clone.- Specified by:
clone
in interfacePublicCloneable
- Overrides:
clone
in classjava.lang.Object
- Returns:
- A clone.
- Throws:
java.lang.CloneNotSupportedException
- this class will not throw this exception, but subclasses might.
-
-