Class ImmutableTable.Builder<R,C,V>
- Enclosing class:
ImmutableTable<R,
C, V>
public static final
tables
("constant tables"). Example:
static final ImmutableTable<Integer, Character, String> SPREADSHEET =
new ImmutableTable.Builder<Integer, Character, String>()
.put(1, 'A', "foo")
.put(1, 'B', "bar")
.put(2, 'A', "baz")
.buildOrThrow();
By default, the order in which cells are added to the builder determines the iteration
ordering of all views in the returned table, with putAll(Table)
following the Table.cellSet()
iteration order. However, if orderRowsBy(Comparator)
or orderColumnsBy(Comparator)
is called, the views are sorted by the supplied comparators.
For empty or single-cell immutable tables, ImmutableTable.of()
and ImmutableTable.of(Object, Object, Object)
are even more convenient.
Builder instances can be reused - it is safe to call buildOrThrow()
multiple times to
build multiple tables in series. Each table is a superset of the tables created before it.
- Since:
- 11.0
- Author:
- Gregory Kick
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbuild()
Returns a newly-created immutable table.Returns a newly-created immutable table, or throws an exception if duplicate key pairs were added.orderColumnsBy
(Comparator<? super C> columnComparator) Specifies the ordering of the generated table's columns.orderRowsBy
(Comparator<? super R> rowComparator) Specifies the ordering of the generated table's rows.put
(Table.Cell<? extends R, ? extends C, ? extends V> cell) Adds the givencell
to the table, making it immutable if necessary.Associates the (rowKey
,columnKey
) pair withvalue
in the built table.Associates all of the given table's keys and values in the built table.
-
Constructor Details
-
Builder
public Builder()Creates a new builder. The returned builder is equivalent to the builder generated byImmutableTable.builder()
.
-
-
Method Details
-
orderRowsBy
@CanIgnoreReturnValue public ImmutableTable.Builder<R,C, orderRowsByV> (Comparator<? super R> rowComparator) Specifies the ordering of the generated table's rows. -
orderColumnsBy
@CanIgnoreReturnValue public ImmutableTable.Builder<R,C, orderColumnsByV> (Comparator<? super C> columnComparator) Specifies the ordering of the generated table's columns. -
put
Associates the (rowKey
,columnKey
) pair withvalue
in the built table. Duplicate key pairs are not allowed and will causebuild()
to fail. -
put
@CanIgnoreReturnValue public ImmutableTable.Builder<R,C, putV> (Table.Cell<? extends R, ? extends C, ? extends V> cell) Adds the givencell
to the table, making it immutable if necessary. Duplicate key pairs are not allowed and will causebuild()
to fail. -
putAll
@CanIgnoreReturnValue public ImmutableTable.Builder<R,C, putAllV> (Table<? extends R, ? extends C, ? extends V> table) Associates all of the given table's keys and values in the built table. Duplicate row key column key pairs are not allowed, and will causebuild()
to fail.- Throws:
NullPointerException
- if any key or value intable
is null
-
build
Returns a newly-created immutable table.Prefer the equivalent method
buildOrThrow()
to make it explicit that the method will throw an exception if there are duplicate key pairs. Thebuild()
method will soon be deprecated.- Throws:
IllegalArgumentException
- if duplicate key pairs were added
-
buildOrThrow
Returns a newly-created immutable table, or throws an exception if duplicate key pairs were added.- Throws:
IllegalArgumentException
- if duplicate key pairs were added- Since:
- 31.0
-