Revision: 5908 Author: [email protected] Date: Thu Aug 6 14:35:18 2009 Log: Add Sets.addAll() utility method. Update to Maps.pulAll() per Scott.
Patch by: bobv Review by: scottb http://code.google.com/p/google-web-toolkit/source/detail?r=5908 Modified: /trunk/dev/core/src/com/google/gwt/dev/util/collect/Maps.java /trunk/dev/core/src/com/google/gwt/dev/util/collect/Sets.java ======================================= --- /trunk/dev/core/src/com/google/gwt/dev/util/collect/Maps.java Fri Jul 31 23:49:15 2009 +++ /trunk/dev/core/src/com/google/gwt/dev/util/collect/Maps.java Thu Aug 6 14:35:18 2009 @@ -109,7 +109,7 @@ K key = map.keySet().iterator().next(); result.put(key, map.get(key)); result.putAll(toAdd); - return normalize(result); + return result; } default: map.putAll(toAdd); ======================================= --- /trunk/dev/core/src/com/google/gwt/dev/util/collect/Sets.java Mon May 11 17:08:49 2009 +++ /trunk/dev/core/src/com/google/gwt/dev/util/collect/Sets.java Thu Aug 6 14:35:18 2009 @@ -15,6 +15,7 @@ */ package com.google.gwt.dev.util.collect; +import java.util.Collection; import java.util.Collections; import java.util.Set; @@ -50,6 +51,32 @@ return set; } } + + public static <T> Set<T> addAll(Set<T> set, Collection<T> toAdd) { + switch (toAdd.size()) { + case 0: + return set; + case 1: + return add(set, toAdd.iterator().next()); + } + + switch (set.size()) { + case 0: + // Empty -> HashSet + return new HashSet<T>(toAdd); + case 1: { + // Singleton -> HashSet + Set<T> result = new HashSet<T>(); + result.add(set.iterator().next()); + result.addAll(toAdd); + return result; + } + default: + // HashSet + set.addAll(toAdd); + return set; + } + } public static <T> Set<T> create() { return Collections.emptySet(); --~--~---------~--~----~------------~-------~--~----~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~----------~----~----~----~------~----~------~--~---
