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(com.google.common.collect.Table<? extends R, ? extends C, ? extends V>)
following the Table.cellSet()
iteration order. However, if orderRowsBy(java.util.Comparator<? super R>)
or orderColumnsBy(java.util.Comparator<? super C>)
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
-
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
-