Class ImmutableBiMap.Builder<K,V>
- java.lang.Object
-
- com.google.common.collect.ImmutableMap.Builder<K,V>
-
- com.google.common.collect.ImmutableBiMap.Builder<K,V>
-
- Enclosing class:
- ImmutableBiMap<K,V>
public static final class ImmutableBiMap.Builder<K,V> extends ImmutableMap.Builder<K,V>
A builder for creating immutable bimap instances, especiallypublic 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
, andkeySet()
andvalues()
respect the same order. If you want a different order, consider usingorderEntriesByValue(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.- Since:
- 2.0
-
-
Constructor Summary
Constructors Constructor Description Builder()
Creates a new builder.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description ImmutableBiMap<K,V>
build()
Returns a newly-created immutable bimap.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.ImmutableBiMap.Builder<K,V>
orderEntriesByValue(java.util.Comparator<? super V> valueComparator)
Configures thisBuilder
to order entries by value according to the specified comparator.ImmutableBiMap.Builder<K,V>
put(java.util.Map.Entry<? extends K,? extends V> entry)
Adds the givenentry
to the bimap.ImmutableBiMap.Builder<K,V>
put(K key, V value)
Associateskey
withvalue
in the built 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.
-
-
-
Constructor Detail
-
Builder
public Builder()
Creates a new builder. The returned builder is equivalent to the builder generated byImmutableBiMap.builder()
.
-
-
Method Detail
-
put
@CanIgnoreReturnValue public ImmutableBiMap.Builder<K,V> put(K key, V value)
Associateskey
withvalue
in the built bimap. Duplicate keys or values are not allowed, and will causebuild()
to fail.- Overrides:
put
in classImmutableMap.Builder<K,V>
-
put
@CanIgnoreReturnValue public ImmutableBiMap.Builder<K,V> put(java.util.Map.Entry<? extends K,? extends V> entry)
Adds the givenentry
to the bimap. Duplicate keys or values are not allowed, and will causebuild()
to fail.- Overrides:
put
in classImmutableMap.Builder<K,V>
- Since:
- 19.0
-
putAll
@CanIgnoreReturnValue public 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. Duplicate keys or values are not allowed, and will causebuild()
to fail.- Overrides:
putAll
in classImmutableMap.Builder<K,V>
- Throws:
java.lang.NullPointerException
- if any key or value inmap
is null
-
putAll
@CanIgnoreReturnValue public 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. Duplicate keys or values are not allowed, and will causebuild()
to fail.- Overrides:
putAll
in classImmutableMap.Builder<K,V>
- Throws:
java.lang.NullPointerException
- if any key, value, or entry is null- Since:
- 19.0
-
orderEntriesByValue
@CanIgnoreReturnValue public ImmutableBiMap.Builder<K,V> orderEntriesByValue(java.util.Comparator<? super V> valueComparator)
Configures thisBuilder
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.
- Overrides:
orderEntriesByValue
in classImmutableMap.Builder<K,V>
- Throws:
java.lang.IllegalStateException
- if this method was already called- Since:
- 19.0
-
build
public ImmutableBiMap<K,V> build()
Returns a newly-created immutable bimap. The iteration order of the returned bimap is the order in which entries were inserted into the builder, unlessorderEntriesByValue(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. Thebuild()
method will soon be deprecated.- Overrides:
build
in classImmutableMap.Builder<K,V>
- Throws:
java.lang.IllegalArgumentException
- if duplicate keys or values were added
-
buildOrThrow
public ImmutableBiMap<K,V> buildOrThrow()
Returns a newly-created immutable bimap, or throws an exception if any key or value was added more than once. The iteration order of the returned bimap is the order in which entries were inserted into the builder, unlessorderEntriesByValue(java.util.Comparator<? super V>)
was called, in which case entries are sorted by value.- Overrides:
buildOrThrow
in classImmutableMap.Builder<K,V>
- Throws:
java.lang.IllegalArgumentException
- if duplicate keys or values were added- Since:
- 31.0
-
buildKeepingLast
@Deprecated public ImmutableBiMap<K,V> buildKeepingLast()
Deprecated.This method does not make sense for bimaps and should not be called.ThrowsUnsupportedOperationException
. This method is inherited fromImmutableMap.Builder
, but it does not make sense for bimaps.- Overrides:
buildKeepingLast
in classImmutableMap.Builder<K,V>
- Throws:
java.lang.UnsupportedOperationException
- always- Since:
- 31.1
-
-