org.jfree.data

## Class DefaultKeyedValues2D

- java.lang.Object
- - org.jfree.data.DefaultKeyedValues2D

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, KeyedValues2D, Values2D, PublicCloneable

      public class DefaultKeyedValues2D
      extends java.lang.Object
      implements KeyedValues2D, PublicCloneable, java.lang.Cloneable, java.io.Serializable

  A data structure that stores zero, one or many values, where each value is associated with two keys (a 'row' key and a 'column' key). The keys should be (a) instances of `Comparable` and (b) immutable.
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `DefaultKeyedValues2D()` Creates a new instance (initially empty).
    `DefaultKeyedValues2D(boolean sortRowKeys)` Creates a new instance (initially empty).

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addValue(java.lang.Number value, java.lang.Comparable rowKey, java.lang.Comparable columnKey)` Adds a value to the table.
    `void` | `clear()` Clears all the data and associated keys.
    `java.lang.Object` | `clone()` Returns a clone.
    `boolean` | `equals(java.lang.Object o)` Tests if this object is equal to another.
    `int` | `getColumnCount()` Returns the column count.
    `int` | `getColumnIndex(java.lang.Comparable key)` Returns the column index for a given key.
    `java.lang.Comparable` | `getColumnKey(int column)` Returns the key for a given column.
    `java.util.List` | `getColumnKeys()` Returns the column keys in an unmodifiable list.
    `int` | `getRowCount()` Returns the row count.
    `int` | `getRowIndex(java.lang.Comparable key)` Returns the row index for a given key.
    `java.lang.Comparable` | `getRowKey(int row)` Returns the key for a given row.
    `java.util.List` | `getRowKeys()` Returns the row keys in an unmodifiable list.
    `java.lang.Number` | `getValue(java.lang.Comparable rowKey, java.lang.Comparable columnKey)` Returns the value for the given row and column keys.
    `java.lang.Number` | `getValue(int row, int column)` Returns the value for a given row and column.
    `int` | `hashCode()` Returns a hash code.
    `void` | `removeColumn(java.lang.Comparable columnKey)` Removes a column from the table.
    `void` | `removeColumn(int columnIndex)` Removes a column.
    `void` | `removeRow(java.lang.Comparable rowKey)` Removes a row from the table.
    `void` | `removeRow(int rowIndex)` Removes a row.
    `void` | `removeValue(java.lang.Comparable rowKey, java.lang.Comparable columnKey)` Removes a value from the table by setting it to `null`.
    `void` | `setValue(java.lang.Number value, java.lang.Comparable rowKey, java.lang.Comparable columnKey)` Adds or updates a value.

    - ### Methods inherited from class java.lang.Object

      `finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### DefaultKeyedValues2D

          public DefaultKeyedValues2D()

      Creates a new instance (initially empty).

    - #### DefaultKeyedValues2D

          public DefaultKeyedValues2D(boolean sortRowKeys)

      Creates a new instance (initially empty).
      Parameters:
        `sortRowKeys` - if the row keys should be sorted.

  - ### Method Detail

    - #### getRowCount

          public int getRowCount()

      Returns the row count.
      Specified by:
        `getRowCount` in interface `Values2D`
      Returns:
        The row count.
      See Also:
        `getColumnCount()`

    - #### getColumnCount

          public int getColumnCount()

      Returns the column count.
      Specified by:
        `getColumnCount` in interface `Values2D`
      Returns:
        The column count.
      See Also:
        `getRowCount()`

    - #### getValue

          public java.lang.Number getValue(int row,
                                           int column)

      Returns the value for a given row and column.
      Specified by:
        `getValue` in interface `Values2D`
      Parameters:
        `row` - the row index.
        `column` - the column index.
      Returns:
        The value.
      See Also:
        `getValue(Comparable, Comparable)`

    - #### getRowKey

          public java.lang.Comparable getRowKey(int row)

      Returns the key for a given row.
      Specified by:
        `getRowKey` in interface `KeyedValues2D`
      Parameters:
        `row` - the row index (in the range 0 to `getRowCount()` - 1).
      Returns:
        The row key.
      See Also:
        `getRowIndex(Comparable)`, `getColumnKey(int)`

    - #### getRowIndex

          public int getRowIndex(java.lang.Comparable key)

      Returns the row index for a given key.
      Specified by:
        `getRowIndex` in interface `KeyedValues2D`
      Parameters:
        `key` - the key (`null` not permitted).
      Returns:
        The row index.
      See Also:
        `getRowKey(int)`, `getColumnIndex(Comparable)`

    - #### getRowKeys

          public java.util.List getRowKeys()

      Returns the row keys in an unmodifiable list.
      Specified by:
        `getRowKeys` in interface `KeyedValues2D`
      Returns:
        The row keys.
      See Also:
        `getColumnKeys()`

    - #### getColumnKey

          public java.lang.Comparable getColumnKey(int column)

      Returns the key for a given column.
      Specified by:
        `getColumnKey` in interface `KeyedValues2D`
      Parameters:
        `column` - the column (in the range 0 to `getColumnCount()` - 1).
      Returns:
        The key.
      See Also:
        `getColumnIndex(Comparable)`, `getRowKey(int)`

    - #### getColumnIndex

          public int getColumnIndex(java.lang.Comparable key)

      Returns the column index for a given key.
      Specified by:
        `getColumnIndex` in interface `KeyedValues2D`
      Parameters:
        `key` - the key (`null` not permitted).
      Returns:
        The column index.
      See Also:
        `getColumnKey(int)`, `getRowIndex(Comparable)`

    - #### getColumnKeys

          public java.util.List getColumnKeys()

      Returns the column keys in an unmodifiable list.
      Specified by:
        `getColumnKeys` in interface `KeyedValues2D`
      Returns:
        The column keys.
      See Also:
        `getRowKeys()`

    - #### getValue

          public java.lang.Number getValue(java.lang.Comparable rowKey,
                                           java.lang.Comparable columnKey)

      Returns the value for the given row and column keys. This method will throw an `UnknownKeyException` if either key is not defined in the data structure.
      Specified by:
        `getValue` in interface `KeyedValues2D`
      Parameters:
        `rowKey` - the row key (`null` not permitted).
        `columnKey` - the column key (`null` not permitted).
      Returns:
        The value (possibly `null`).
      See Also:
        `addValue(Number, Comparable, Comparable)`, `removeValue(Comparable, Comparable)`

    - #### addValue

          public void addValue(java.lang.Number value,
                               java.lang.Comparable rowKey,
                               java.lang.Comparable columnKey)

      Adds a value to the table. Performs the same function as #setValue(Number, Comparable, Comparable).
      Parameters:
        `value` - the value (`null` permitted).
        `rowKey` - the row key (`null` not permitted).
        `columnKey` - the column key (`null` not permitted).
      See Also:
        `setValue(Number, Comparable, Comparable)`, `removeValue(Comparable, Comparable)`

    - #### setValue

          public void setValue(java.lang.Number value,
                               java.lang.Comparable rowKey,
                               java.lang.Comparable columnKey)

      Adds or updates a value.
      Parameters:
        `value` - the value (`null` permitted).
        `rowKey` - the row key (`null` not permitted).
        `columnKey` - the column key (`null` not permitted).
      See Also:
        `addValue(Number, Comparable, Comparable)`, `removeValue(Comparable, Comparable)`

    - #### removeValue

          public void removeValue(java.lang.Comparable rowKey,
                                  java.lang.Comparable columnKey)

      Removes a value from the table by setting it to `null`. If all the values in the specified row and/or column are now `null`, the row and/or column is removed from the table.
      Parameters:
        `rowKey` - the row key (`null` not permitted).
        `columnKey` - the column key (`null` not permitted).
      See Also:
        `addValue(Number, Comparable, Comparable)`

    - #### removeRow

          public void removeRow(int rowIndex)

      Removes a row.
      Parameters:
        `rowIndex` - the row index.
      See Also:
        `removeRow(Comparable)`, `removeColumn(int)`

    - #### removeRow

          public void removeRow(java.lang.Comparable rowKey)

      Removes a row from the table.
      Parameters:
        `rowKey` - the row key (`null` not permitted).
      Throws:
        `UnknownKeyException` - if `rowKey` is not defined in the table.
      See Also:
        `removeRow(int)`, `removeColumn(Comparable)`

    - #### removeColumn

          public void removeColumn(int columnIndex)

      Removes a column.
      Parameters:
        `columnIndex` - the column index.
      See Also:
        `removeColumn(Comparable)`, `removeRow(int)`

    - #### removeColumn

          public void removeColumn(java.lang.Comparable columnKey)

      Removes a column from the table.
      Parameters:
        `columnKey` - the column key (`null` not permitted).
      Throws:
        `UnknownKeyException` - if the table does not contain a column with the specified key.
        `java.lang.IllegalArgumentException` - if `columnKey` is `null`.
      See Also:
        `removeColumn(int)`, `removeRow(Comparable)`

    - #### clear

          public void clear()

      Clears all the data and associated keys.

    - #### equals

          public boolean equals(java.lang.Object o)

      Tests if this object is equal to another.
      Overrides:
        `equals` in class `java.lang.Object`
      Parameters:
        `o` - the other object (`null` permitted).
      Returns:
        A boolean.

    - #### hashCode

          public int hashCode()

      Returns a hash code.
      Overrides:
        `hashCode` in class `java.lang.Object`
      Returns:
        A hash code.

    - #### clone

          public java.lang.Object clone()
                                 throws java.lang.CloneNotSupportedException

      Returns a clone.
      Specified by:
        `clone` in interface `PublicCloneable`
      Overrides:
        `clone` in class `java.lang.Object`
      Returns:
        A clone.
      Throws:
        `java.lang.CloneNotSupportedException` - this class will not throw this exception, but subclasses (if any) might.