/** * Returns an immutable multimap containing the specified entries. The returned multimap iterates * over keys in the order they were first encountered in the input, and the values for each key * are iterated in the order they were encountered. If two values for the same key are {@linkplain * Object#equals equal}, the first value encountered is used. * * @throws NullPointerException if any key, value, or entry is null * @since 19.0 */ @Beta public static <K, V> ImmutableSetMultimap<K, V> copyOf( Iterable<? extends Entry<? extends K, ? extends V>> entries) { return new Builder<K, V>().putAll(entries).build(); }
public void testBuilder_withImmutableEntry() { ImmutableSetMultimap<String, Integer> multimap = new Builder<String, Integer>().put(Maps.immutableEntry("one", 1)).build(); assertEquals(ImmutableSet.of(1), multimap.get("one")); }
/** * Returns an immutable multimap containing the specified entries. The returned multimap iterates * over keys in the order they were first encountered in the input, and the values for each key * are iterated in the order they were encountered. If two values for the same key are {@linkplain * Object#equals equal}, the first value encountered is used. * * @throws NullPointerException if any key, value, or entry is null * @since 19.0 */ @Beta public static <K, V> ImmutableSetMultimap<K, V> copyOf( Iterable<? extends Entry<? extends K, ? extends V>> entries) { return new Builder<K, V>().putAll(entries).build(); }
/** * Returns a new {@link Builder}. */ public static <K, V> Builder<K, V> builder() { return new Builder<K, V>(); }
@Override public ImmutableSetMultimap<String, String> vmArguments() { // de-dup values, but keep in order return new ImmutableSetMultimap.Builder<String, String>() .orderKeysBy(Ordering.natural()) .putAll(mutableVmArguments) .build(); }
/** * Returns a new {@link Builder}. */ public static <K, V> Builder<K, V> builder() { return new Builder<K, V>(); }
@Override public ImmutableSetMultimap<String, String> vmArguments() { // de-dup values, but keep in order return new ImmutableSetMultimap.Builder<String, String>() .orderKeysBy(Ordering.natural()) .putAll(mutableVmArguments) .build(); }
public void testBuilder_withImmutableEntry() { ImmutableSetMultimap<String, Integer> multimap = new Builder<String, Integer>() .put(Maps.immutableEntry("one", 1)) .build(); assertEquals(ImmutableSet.of(1), multimap.get("one")); }
/** * Returns a new {@link Builder}. */ public static <K, V> Builder<K, V> builder() { return new Builder<K, V>(); }
public GoogleGuavaDeckOfCards() { this.cards = Card.streamCards() .collect(ImmutableSortedSet.toImmutableSortedSet(Comparator.naturalOrder())); ImmutableSetMultimap.Builder<Suit, Card> builder = new ImmutableSetMultimap.Builder<Suit, Card>().orderValuesBy(Comparator.naturalOrder()); this.cards.forEach(card -> builder.put(card.getSuit(), card)); this.cardsBySuit = builder.build(); }
@Override public ImmutableSetMultimap<String, String> userParameters() { // de-dup values, but keep in order return new ImmutableSetMultimap.Builder<String, String>() .orderKeysBy(Ordering.natural()) .putAll(mutableUserParameters) .build(); }
/** * Returns a new {@link Builder}. */ public static <K, V> Builder<K, V> builder() { return new Builder<K, V>(); }
@Override public ImmutableSetMultimap<String, String> userParameters() { // de-dup values, but keep in order return new ImmutableSetMultimap.Builder<String, String>() .orderKeysBy(Ordering.natural()) .putAll(mutableUserParameters) .build(); }
/** * Returns a new {@link Builder}. */ public static <K, V> Builder<K, V> builder() { return new Builder<K, V>(); }
public CombinedLibraryModels(Iterable<LibraryModels> models) { ImmutableSetMultimap.Builder<MethodRef, Integer> failIfNullParametersBuilder = new ImmutableSetMultimap.Builder<>(); ImmutableSetMultimap.Builder<MethodRef, Integer> explicitlyNullableParametersBuilder = new ImmutableSetMultimap.Builder<>(); ImmutableSetMultimap.Builder<MethodRef, Integer> nonNullParametersBuilder = new ImmutableSetMultimap.Builder<>(); ImmutableSetMultimap.Builder<MethodRef, Integer> nullImpliesTrueParametersBuilder = new ImmutableSetMultimap.Builder<>();
/** Returns a new {@link Builder}. */ public static <K, V> Builder<K, V> builder() { return new Builder<>(); }
public void testBuilder_withMutableEntry() { ImmutableSetMultimap.Builder<String, Integer> builder = new Builder<>(); final StringHolder holder = new StringHolder(); holder.string = "one"; Entry<String, Integer> entry = new AbstractMapEntry<String, Integer>() { @Override public String getKey() { return holder.string; } @Override public Integer getValue() { return 1; } }; builder.put(entry); holder.string = "two"; assertEquals(ImmutableSet.of(1), builder.build().get("one")); }
@GwtIncompatible // SerializableTester public void testSortedSerialization() { Multimap<String, Integer> multimap = new ImmutableSetMultimap.Builder<String, Integer>() .orderKeysBy(Ordering.natural().reverse()) .orderValuesBy(Ordering.usingToString()) .put("a", 2) .put("a", 10) .put("b", 1) .build(); multimap = SerializableTester.reserialize(multimap); assertThat(multimap.keySet()).containsExactly("b", "a").inOrder(); assertThat(multimap.get("a")).containsExactly(10, 2).inOrder(); assertEquals( Ordering.usingToString(), ((ImmutableSortedSet<Integer>) multimap.get("a")).comparator()); assertEquals( Ordering.usingToString(), ((ImmutableSortedSet<Integer>) multimap.get("z")).comparator()); }
/** Returns a new {@link Builder}. */ public static <K, V> Builder<K, V> builder() { return new Builder<>(); }
public void testBuilder_withImmutableEntryAndNullContents() { Builder<String, Integer> builder = new Builder<>(); try { builder.put(Maps.immutableEntry("one", (Integer) null)); fail(); } catch (NullPointerException expected) { } try { builder.put(Maps.immutableEntry((String) null, 1)); fail(); } catch (NullPointerException expected) { } }