This package provides a set of classes related to columns used in tables.

There are quite a large set of column types. For each literal type used by the InfoVis Toolkit, there is a concrete column type: IntColumn, LongColumn, FloatColumn, DoubleColumn. These columns are dense, meaning that they allocate memory for all of their potential values, even if most are undefined at the end. A second set of implementations is provided for mostly spare columns: IntSparseColumn and others (yet to come) that inherit from SparseColumn.

For other types inheriting from java.lang.Object, there is a base class BasicObjectColumn and several specialized columns such as: ObjectColumn, StringColumn and ShapeColumn.

Columns containing literal values inherit from the LiteralColumn base class for their implementation. They all implement the NumberColumn interface. This interface provides a uniform access to any literal values for contexts where algorithms only care about getting a number and not about its concrete representation.

Columns are meant to expose the structure of their contents so, for example, when a table needs to contain 2-dimensional point using X and Y double coordinates, it is best to use two DoubleColumns instead of one ObjectColumn containing Point2D elements.

For more information about specific column classes, look at their specific documentation.