V
- the type of the valueDenseGrid
, ImmutableGrid
, SparseGrid
public interface Grid<V>
int
row and int
column.
A grid has a fixed number of rows and columns, but not all cells must be occupied. Dense and sparse implementations are provided that handle high and low numbers of cells relative to the potential capacity.
Modifier and Type | Interface | Description |
---|---|---|
static interface |
Grid.Cell<V> |
A cell within the grid compared only using row and column.
|
Modifier and Type | Method | Description |
---|---|---|
Grid.Cell<V> |
cell(int row,
int column) |
Gets the cell at the specified row-column.
|
java.util.Set<Grid.Cell<V>> |
cells() |
Gets the complete set of cells.
|
void |
clear() |
Clears the grid.
|
java.util.List<V> |
column(int column) |
Gets the rows of a single column.
|
int |
columnCount() |
Gets the number of columns in the grid.
|
java.util.List<java.util.List<V>> |
columns() |
Gets the entire grid of values, by column then row.
|
boolean |
contains(int row,
int column) |
Checks if a value is present at the specified row-column.
|
boolean |
containsValue(java.lang.Object valueToFind) |
Checks if the specified value is contained in the grid.
|
boolean |
equals(java.lang.Object obj) |
Checks if this grid equals another grid.
|
boolean |
exists(int row,
int column) |
Checks if the specified row-column exists.
|
V |
get(int row,
int column) |
Gets the value at the specified row-column.
|
int |
hashCode() |
Gets a suitable hash code.
|
boolean |
isEmpty() |
Checks if the grid is empty.
|
boolean |
isFull() |
Checks if the grid is full.
|
void |
put(int row,
int column,
V value) |
Puts a value into this grid.
|
void |
putAll(Grid<? extends V> grid) |
Puts all cells from a grid into this grid.
|
boolean |
remove(int row,
int column) |
Removes the value at the specified row-column.
|
java.util.List<V> |
row(int row) |
Gets the columns of a single row.
|
int |
rowCount() |
Gets the number of rows in the grid.
|
java.util.List<java.util.List<V>> |
rows() |
Gets the entire grid of values, by row then column.
|
int |
size() |
Gets the number of cells that are present.
|
com.google.common.collect.ImmutableCollection<V> |
values() |
Gets the values in order through rows, then columns.
|
int rowCount()
A grid has a fixed number of rows and columns, but not all cells must be occupied.
This returns the row capacity, not the number of occupied rows.
It is guaranteed that contains(int, int)
will return false
for indices larger than the row count.
int columnCount()
A grid has a fixed number of rows and columns, but not all cells must be occupied.
This returns the column capacity, not the number of occupied columns.
It is guaranteed that contains(int, int)
will return false
for indices larger than the column count.
boolean exists(int row, int column)
This simply checks that the row and column indices are between zero and the row and column counts.
row
- the rowcolumn
- the columnboolean isFull()
A full grid has a cell at every combination of row and column.
boolean isEmpty()
int size()
boolean contains(int row, int column)
If either index does not exist, false is returned.
row
- the rowcolumn
- the columnboolean containsValue(java.lang.Object valueToFind)
valueToFind
- the value to find, null returns falseV get(int row, int column)
If either index does not exist, null is returned.
row
- the rowcolumn
- the columnGrid.Cell<V> cell(int row, int column)
If either index does not exist, null is returned.
row
- the rowcolumn
- the columnboolean equals(java.lang.Object obj)
Two grids are equal if they are the same size and contain the same set of cells.
equals
in class java.lang.Object
obj
- the object to compare to, null returns falseint hashCode()
The hash code is rowCount ^ Integer.rotateLeft(columnCount, 16) ^ cells.hashCode()
.
hashCode
in class java.lang.Object
void clear()
The grid will be empty after calling this method.
java.lang.UnsupportedOperationException
- if read-onlyvoid put(int row, int column, V value)
The value at the specified row-column is set. Any previous value at the row-column is replaced.
If either index does not exist, IndexOutOfBoundsException
is thrown.
row
- the row, zero or greatercolumn
- the column, zero or greatervalue
- the value to put into the grid, not nulljava.lang.IndexOutOfBoundsException
- if either index does not existjava.lang.UnsupportedOperationException
- if read-onlyvoid putAll(Grid<? extends V> grid)
The value at the specified row-column is set. Any previous value at the row-column is replaced.
grid
- the grid to put into this grid, not nulljava.lang.IndexOutOfBoundsException
- if a cell has an invalid indexjava.lang.UnsupportedOperationException
- if read-onlyboolean remove(int row, int column)
If either index does not exist, no action occurs and false is returned.
row
- the rowcolumn
- the columnjava.lang.UnsupportedOperationException
- if read-onlyjava.util.Set<Grid.Cell<V>> cells()
If the grid is mutable then cells may be added or removed from the set. The cells are returned in order, looping around rows, then columns.
The cell returned from the set iterator may be a mutable Cell
implementation that cannot be stored beyond the lifetime of an iteration.
com.google.common.collect.ImmutableCollection<V> values()
The returned data structure is an ordered collection. The values are returned in order, looping around rows, then columns.
java.util.List<V> row(int row)
The list will contain all columns from zero to columnCount
.
Where there is no value for a cell, the list will contain null.
The returned list is immutable, except for List.set(int, Object)
,
which adds, updates or deletes from the underlying grid.
row
- the row, zero or greaterjava.lang.IndexOutOfBoundsException
- if the row is invalidjava.util.List<java.util.List<V>> rows()
The outer list contains all rows from zero to rowCount
.
Each inner list contains all columns from zero to columnCount
.
Where there is no value for a cell, the value is null.
The returned list is immutable, except for the List.set(int, Object)
method on the inner list, which adds, updates or deletes from the underlying grid.
java.util.List<V> column(int column)
The list will contain all rows from zero to rowCount
.
Where data is not present, the list will contain null.
The returned list is immutable, except for List.set(int, Object)
,
which adds, updates or deletes from the underlying grid.
column
- the column, zero or greaterjava.lang.IndexOutOfBoundsException
- if the column is invalidjava.util.List<java.util.List<V>> columns()
The outer list contains all columns from zero to columnCount
.
Each inner list contains all rows from zero to rowCount
.
Where there is no value for a cell, the value is null.
The returned list is immutable, except for the List.set(int, Object)
method on the inner list, which adds, updates or deletes from the underlying grid.
Copyright © 2014–2017 Joda.org. All rights reserved.