V
- the type of the valueGrid<V>
public abstract class ImmutableGrid<V>
extends java.lang.Object
Grid
data structure.Modifier and Type | Method | Description |
---|---|---|
Grid.Cell<V> |
cell(int row,
int column) |
Gets the cell at the specified row-column.
|
void |
clear() |
Deprecated.
Grid is read-only
|
java.util.List<V> |
column(int column) |
Gets the rows of a single column.
|
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.
|
static <R> ImmutableGrid<R> |
copyOf(int rowCount,
int columnCount,
java.lang.Iterable<? extends Grid.Cell<R>> cells) |
Obtains an immutable grid by copying a set of cells.
|
static <R> ImmutableGrid<R> |
copyOf(int rowCount,
int columnCount,
Grid.Cell<R> cell) |
Obtains an immutable grid with one cell.
|
static <R> ImmutableGrid<R> |
copyOf(Grid<R> grid) |
Obtains an immutable grid by copying another grid.
|
static <R> ImmutableGrid<R> |
copyOfDeriveCounts(java.lang.Iterable<? extends Grid.Cell<R>> cells) |
Obtains an immutable grid by copying a set of cells, deriving the row and column count.
|
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.
|
static <R> ImmutableGrid<R> |
of() |
Obtains an empty immutable grid with zero row-column count.
|
static <R> ImmutableGrid<R> |
of(int rowCount,
int columnCount) |
Obtains an empty immutable grid of the specified row-column count.
|
static <R> ImmutableGrid<R> |
of(int rowCount,
int columnCount,
int row,
int column,
R value) |
Obtains an immutable grid of the specified row-column count with a single cell.
|
static <R> ImmutableGrid<R> |
of(R value) |
Obtains an immutable grid with row-column count 1x1 and a single cell.
|
void |
put(int row,
int column,
V value) |
Deprecated.
Grid is read-only
|
void |
putAll(Grid<? extends V> grid) |
Deprecated.
Grid is read-only
|
boolean |
remove(int row,
int column) |
Deprecated.
Grid is read-only
|
java.util.List<V> |
row(int row) |
Gets the columns of a single row.
|
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.
|
java.lang.String |
toString() |
|
com.google.common.collect.ImmutableCollection<V> |
values() |
Gets the values in order through rows, then columns.
|
cells, columnCount, rowCount
public static <R> ImmutableGrid<R> of()
R
- the type of the valuepublic static <R> ImmutableGrid<R> of(int rowCount, int columnCount)
R
- the type of the valuerowCount
- the number of rows, zero or greatercolumnCount
- the number of columns, zero or greaterpublic static <R> ImmutableGrid<R> of(R value)
The single cell is at row zero column zero.
R
- the type of the valuevalue
- the value of the single cell, not nullpublic static <R> ImmutableGrid<R> of(int rowCount, int columnCount, int row, int column, R value)
R
- the type of the valuerowCount
- the number of rows, zero or greatercolumnCount
- the number of columns, zero or greaterrow
- the row of the single cell, zero or greatercolumn
- the column of the single cell, zero or greatervalue
- the value of the single cell, not nullpublic static <R> ImmutableGrid<R> copyOf(int rowCount, int columnCount, Grid.Cell<R> cell)
R
- the type of the valuerowCount
- the number of rows, zero or greatercolumnCount
- the number of columns, zero or greatercell
- the cell that the grid should contain, not nulljava.lang.IndexOutOfBoundsException
- if either index is less than zeropublic static <R> ImmutableGrid<R> copyOf(int rowCount, int columnCount, java.lang.Iterable<? extends Grid.Cell<R>> cells)
R
- the type of the valuerowCount
- the number of rows, zero or greatercolumnCount
- the number of columns, zero or greatercells
- the cells to copy, not nulljava.lang.IndexOutOfBoundsException
- if either index is less than zeropublic static <R> ImmutableGrid<R> copyOfDeriveCounts(java.lang.Iterable<? extends Grid.Cell<R>> cells)
The row and column counts are calculated as the maximum row and column specified.
R
- the type of the valuecells
- the cells to copy, not nulljava.lang.IndexOutOfBoundsException
- if either index is less than zeropublic static <R> ImmutableGrid<R> copyOf(Grid<R> grid)
If you need to change the row-column count, use copyOf(int, int, Iterable)
passing in the set of cells from the grid.
R
- the type of the valuegrid
- the grid to copy, not nulljava.lang.IndexOutOfBoundsException
- if either index is less than zero@Deprecated public void clear()
The grid will be empty after calling this method.
@Deprecated public void 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 null@Deprecated public void 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 null@Deprecated public boolean remove(int row, int column)
If either index does not exist, no action occurs and false is returned.
row
- the rowcolumn
- the columnpublic boolean exists(int row, int column)
Grid
This simply checks that the row and column indices are between zero and the row and column counts.
public boolean isFull()
Grid
A full grid has a cell at every combination of row and column.
public boolean isEmpty()
Grid
public int size()
Grid
public boolean contains(int row, int column)
Grid
If either index does not exist, false is returned.
public boolean containsValue(java.lang.Object valueToFind)
Grid
containsValue
in interface Grid<V>
valueToFind
- the value to find, null returns falsepublic V get(int row, int column)
Grid
If either index does not exist, null is returned.
public Grid.Cell<V> cell(int row, int column)
Grid
If either index does not exist, null is returned.
public com.google.common.collect.ImmutableCollection<V> values()
Grid
The returned data structure is an ordered collection. The values are returned in order, looping around rows, then columns.
public java.util.List<V> row(int row)
Grid
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.
public java.util.List<java.util.List<V>> rows()
Grid
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.
public java.util.List<V> column(int column)
Grid
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.
public java.util.List<java.util.List<V>> columns()
Grid
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.
public boolean equals(java.lang.Object obj)
Grid
Two grids are equal if they are the same size and contain the same set of cells.
public int hashCode()
Grid
The hash code is rowCount ^ Integer.rotateLeft(columnCount, 16) ^ cells.hashCode()
.
public java.lang.String toString()
toString
in class java.lang.Object
Copyright © 2014–2017 Joda.org. All rights reserved.