public static final class ImmutableBiMap.Builder<K,V> extends ImmutableMap.Builder<K,V>
public static final
bimaps
("constant bimaps"). Example:
static final ImmutableBiMap<String, Integer> WORD_TO_INT =
new ImmutableBiMap.Builder<String, Integer>()
.put("one", 1)
.put("two", 2)
.put("three", 3)
.buildOrThrow();
For small immutable bimaps, the ImmutableBiMap.of()
methods are even more
convenient.
By default, a Builder
will generate bimaps that iterate over entries in the order
they were inserted into the builder. For example, in the above example, WORD_TO_INT.entrySet()
is guaranteed to iterate over the entries in the order "one"=1,
"two"=2, "three"=3
, and keySet()
and values()
respect the same order. If you
want a different order, consider using orderEntriesByValue(Comparator)
, which changes
this builder to sort entries by value.
Builder instances can be reused - it is safe to call buildOrThrow()
multiple times to
build multiple bimaps in series. Each bimap is a superset of the bimaps created before it.
entries, entriesUsed, size, valueComparator
Constructor and Description |
---|
Builder()
Creates a new builder.
|
Builder(int size) |
Modifier and Type | Method and Description |
---|---|
ImmutableBiMap<K,V> |
build()
Returns a newly-created immutable bimap.
|
(package private) ImmutableBiMap<K,V> |
buildJdkBacked() |
ImmutableBiMap<K,V> |
buildKeepingLast()
Deprecated.
This method does not make sense for bimaps and should not be called.
|
ImmutableBiMap<K,V> |
buildOrThrow()
Returns a newly-created immutable bimap, or throws an exception if any key or value was added
more than once.
|
(package private) ImmutableBiMap.Builder<K,V> |
combine(ImmutableMap.Builder<K,V> builder) |
ImmutableBiMap.Builder<K,V> |
orderEntriesByValue(java.util.Comparator<? super V> valueComparator)
Configures this
Builder to order entries by value according to the specified
comparator. |
ImmutableBiMap.Builder<K,V> |
put(K key,
V value)
Associates
key with value in the built bimap. |
ImmutableBiMap.Builder<K,V> |
put(java.util.Map.Entry<? extends K,? extends V> entry)
Adds the given
entry to the bimap. |
ImmutableBiMap.Builder<K,V> |
putAll(java.lang.Iterable<? extends java.util.Map.Entry<? extends K,? extends V>> entries)
Adds all of the given entries to the built bimap.
|
ImmutableBiMap.Builder<K,V> |
putAll(java.util.Map<? extends K,? extends V> map)
Associates all of the given map's keys and values in the built bimap.
|
public Builder()
ImmutableBiMap.builder()
.Builder(int size)
public ImmutableBiMap.Builder<K,V> put(K key, V value)
key
with value
in the built bimap. Duplicate keys or values are
not allowed, and will cause build()
to fail.put
in class ImmutableMap.Builder<K,V>
public ImmutableBiMap.Builder<K,V> put(java.util.Map.Entry<? extends K,? extends V> entry)
entry
to the bimap. Duplicate keys or values are not allowed, and will
cause build()
to fail.put
in class ImmutableMap.Builder<K,V>
public ImmutableBiMap.Builder<K,V> putAll(java.util.Map<? extends K,? extends V> map)
build()
to fail.putAll
in class ImmutableMap.Builder<K,V>
java.lang.NullPointerException
- if any key or value in map
is nullpublic ImmutableBiMap.Builder<K,V> putAll(java.lang.Iterable<? extends java.util.Map.Entry<? extends K,? extends V>> entries)
build()
to fail.putAll
in class ImmutableMap.Builder<K,V>
java.lang.NullPointerException
- if any key, value, or entry is nullpublic ImmutableBiMap.Builder<K,V> orderEntriesByValue(java.util.Comparator<? super V> valueComparator)
Builder
to order entries by value according to the specified
comparator.
The sort order is stable, that is, if two entries have values that compare as equivalent, the entry that was inserted first will be first in the built map's iteration order.
orderEntriesByValue
in class ImmutableMap.Builder<K,V>
java.lang.IllegalStateException
- if this method was already calledImmutableBiMap.Builder<K,V> combine(ImmutableMap.Builder<K,V> builder)
combine
in class ImmutableMap.Builder<K,V>
public ImmutableBiMap<K,V> build()
orderEntriesByValue(java.util.Comparator<? super V>)
was called, in which case entries are sorted by value.
Prefer the equivalent method buildOrThrow()
to make it explicit that the method
will throw an exception if there are duplicate keys or values. The build()
method
will soon be deprecated.
build
in class ImmutableMap.Builder<K,V>
java.lang.IllegalArgumentException
- if duplicate keys or values were addedpublic ImmutableBiMap<K,V> buildOrThrow()
orderEntriesByValue(java.util.Comparator<? super V>)
was called, in which case
entries are sorted by value.buildOrThrow
in class ImmutableMap.Builder<K,V>
java.lang.IllegalArgumentException
- if duplicate keys or values were added@Deprecated public ImmutableBiMap<K,V> buildKeepingLast()
UnsupportedOperationException
. This method is inherited from ImmutableMap.Builder
, but it does not make sense for bimaps.buildKeepingLast
in class ImmutableMap.Builder<K,V>
java.lang.UnsupportedOperationException
- alwaysImmutableBiMap<K,V> buildJdkBacked()
buildJdkBacked
in class ImmutableMap.Builder<K,V>