Class ImmutableBiMap.Builder<K,V>
- Enclosing class:
- ImmutableBiMap<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.
- Since:
- 2.0
-
Field Summary
Fields inherited from class com.google.common.collect.ImmutableMap.Builder
entries, entriesUsed, size, valueComparator -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbuild()Returns a newly-created immutable bimap.(package private) ImmutableBiMap<K,V> 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) orderEntriesByValue(Comparator<? super V> valueComparator) Configures thisBuilderto order entries by value according to the specified comparator.Adds the givenentryto the bimap.Associateskeywithvaluein the built bimap.Adds all of the given entries to the built bimap.Associates all of the given map's keys and values in the built bimap.
-
Constructor Details
-
Builder
public Builder()Creates a new builder. The returned builder is equivalent to the builder generated byImmutableBiMap.builder(). -
Builder
Builder(int size)
-
-
Method Details
-
put
Associateskeywithvaluein the built bimap. Duplicate keys or values are not allowed, and will causebuild()to fail.- Overrides:
putin classImmutableMap.Builder<K,V>
-
put
Adds the givenentryto the bimap. Duplicate keys or values are not allowed, and will causebuild()to fail.- Overrides:
putin classImmutableMap.Builder<K,V> - Since:
- 19.0
-
putAll
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:
putAllin classImmutableMap.Builder<K,V> - Throws:
NullPointerException- if any key or value inmapis null
-
putAll
public ImmutableBiMap.Builder<K,V> putAll(Iterable<? extends 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:
putAllin classImmutableMap.Builder<K,V> - Throws:
NullPointerException- if any key, value, or entry is null- Since:
- 19.0
-
orderEntriesByValue
Configures thisBuilderto 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:
orderEntriesByValuein classImmutableMap.Builder<K,V> - Throws:
IllegalStateException- if this method was already called- Since:
- 19.0
-
combine
- Overrides:
combinein classImmutableMap.Builder<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:
buildin classImmutableMap.Builder<K,V> - Throws:
IllegalArgumentException- if duplicate keys or values were added
-
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:
buildOrThrowin classImmutableMap.Builder<K,V> - Throws:
IllegalArgumentException- if duplicate keys or values were added- Since:
- 31.0
-
buildJdkBacked
ImmutableBiMap<K,V> buildJdkBacked()- Overrides:
buildJdkBackedin classImmutableMap.Builder<K,V>
-