You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Something along the lines of:
final ImmutableMap<Integer,String> map = ImmutableMap.of(1, "a", 2, "b");
ImmutableMap<Integer,String> result;
result = map.with(3, "c"); // { 1 : "a", 2 : "b", 3 : "c" }
result = map.with(3, "foo"); // { 1 : "a", 2 : "b", 3 : "foo" }
result = map.without(3); // { 1 : "a", 2 : "b" }
and possibly bulk overloads
I understand the performance implications of using these, but they would
still be very useful. Currently I use:
public static <K,V> ImmutableMap<K,V> with(
final ImmutableMap<K,V> map, final K key, final V value) {
return ImmutableMap.<K,V>builder()
.putAll(Maps.filterKeys(map,
Predicates.not(Preds.is(key)))).put(key, value).build();
}
(Preds.is is what used to be Predicates.isSameAs)
But I would think that this can be done better if it were implemented in
the collection.
In the long run, immutable collections would need a different
implementation to be able to use these methods in moderately performance
sensitive areas. (the way clojure's persistent data structures are
implemented comes to mind, and I would think scala has something similar,
though I am not sure)
Original issue reported on code.google.com by jvdne...@gmail.com on 9 Dec 2009 at 2:29
The text was updated successfully, but these errors were encountered:
This issue has been moved to the Guava project (keeping the same id number).
Simply replace 'google-collections' with 'guava-libraries' in your address
bar and it should take you there.
Original comment by kevinb@google.com on 5 Jan 2010 at 11:09
Original issue reported on code.google.com by
jvdne...@gmail.com
on 9 Dec 2009 at 2:29The text was updated successfully, but these errors were encountered: