Improves the benchmarking for HashMaps...

Change-Id: Ie82bdd7a9ffe0b00dc68e2f056ce427257caca34
diff --git a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapCloneManualObjectKeysBenchmark.gwt.xml b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapCloneManualObjectKeysBenchmark.gwt.xml
deleted file mode 100644
index 36905b3..0000000
--- a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapCloneManualObjectKeysBenchmark.gwt.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<!--                                                                        -->
-<!-- Copyright 2014 Google Inc.                                             -->
-<!-- Licensed under the Apache License, Version 2.0 (the "License"); you    -->
-<!-- may not use this file except in compliance with the License. You may   -->
-<!-- may obtain a copy of the License at                                    -->
-<!--                                                                        -->
-<!-- http://www.apache.org/licenses/LICENSE-2.0                             -->
-<!--                                                                        -->
-<!-- Unless required by applicable law or agreed to in writing, software    -->
-<!-- distributed under the License is distributed on an "AS IS" BASIS,      -->
-<!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or        -->
-<!-- implied. License for the specific language governing permissions and   -->
-<!-- limitations under the License.                                         -->
-
-<module>
-  <inherits name="com.google.gwt.benchmark.benchmarks.java.util.Util"/>
-  <source path="shared" includes="HashMapCloneManualObjectKeysBenchmark.java"/>
-  <entry-point class="com.google.gwt.benchmark.benchmarks.java.util.shared.HashMapCloneManualObjectKeysBenchmark.EntryPoint"/>
-</module>
\ No newline at end of file
diff --git a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapInsertObjectKeysBenchmark.gwt.xml b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapInsertObjectKeysBenchmark.gwt.xml
deleted file mode 100644
index 6da16b4..0000000
--- a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapInsertObjectKeysBenchmark.gwt.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<!--                                                                        -->
-<!-- Copyright 2014 Google Inc.                                             -->
-<!-- Licensed under the Apache License, Version 2.0 (the "License"); you    -->
-<!-- may not use this file except in compliance with the License. You may   -->
-<!-- may obtain a copy of the License at                                    -->
-<!--                                                                        -->
-<!-- http://www.apache.org/licenses/LICENSE-2.0                             -->
-<!--                                                                        -->
-<!-- Unless required by applicable law or agreed to in writing, software    -->
-<!-- distributed under the License is distributed on an "AS IS" BASIS,      -->
-<!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or        -->
-<!-- implied. License for the specific language governing permissions and   -->
-<!-- limitations under the License.                                         -->
-
-<module>
-  <inherits name="com.google.gwt.benchmark.benchmarks.java.util.Util"/>
-  <source path="shared" includes="HashMapInsertObjectKeysBenchmark.java"/>
-  <entry-point class="com.google.gwt.benchmark.benchmarks.java.util.shared.HashMapInsertObjectKeysBenchmark.EntryPoint"/>
-</module>
\ No newline at end of file
diff --git a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapInsertObjectKeysBenchmarkD8.gwt.xml b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapInsertObjectKeysBenchmarkD8.gwt.xml
deleted file mode 100644
index 4e4af35..0000000
--- a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapInsertObjectKeysBenchmarkD8.gwt.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<!--                                                                        -->
-<!-- Copyright 2014 Google Inc.                                             -->
-<!-- Licensed under the Apache License, Version 2.0 (the "License"); you    -->
-<!-- may not use this file except in compliance with the License. You may   -->
-<!-- may obtain a copy of the License at                                    -->
-<!--                                                                        -->
-<!-- http://www.apache.org/licenses/LICENSE-2.0                             -->
-<!--                                                                        -->
-<!-- Unless required by applicable law or agreed to in writing, software    -->
-<!-- distributed under the License is distributed on an "AS IS" BASIS,      -->
-<!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or        -->
-<!-- implied. License for the specific language governing permissions and   -->
-<!-- limitations under the License.                                         -->
-
-<module>
-  <inherits name="com.google.gwt.benchmark.benchmarks.java.util.HashMapInsertObjectKeysBenchmark"/>
-  <inherits name="com.google.gwt.benchmark.d8.D8"/>
-</module>
\ No newline at end of file
diff --git a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapInsertStringKeysBenchmarkD8.gwt.xml b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapInsertStringKeysBenchmarkD8.gwt.xml
deleted file mode 100644
index 793155a..0000000
--- a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapInsertStringKeysBenchmarkD8.gwt.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<!--                                                                        -->
-<!-- Copyright 2014 Google Inc.                                             -->
-<!-- Licensed under the Apache License, Version 2.0 (the "License"); you    -->
-<!-- may not use this file except in compliance with the License. You may   -->
-<!-- may obtain a copy of the License at                                    -->
-<!--                                                                        -->
-<!-- http://www.apache.org/licenses/LICENSE-2.0                             -->
-<!--                                                                        -->
-<!-- Unless required by applicable law or agreed to in writing, software    -->
-<!-- distributed under the License is distributed on an "AS IS" BASIS,      -->
-<!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or        -->
-<!-- implied. License for the specific language governing permissions and   -->
-<!-- limitations under the License.                                         -->
-
-<module>
-  <inherits name="com.google.gwt.benchmark.benchmarks.java.util.HashMapInsertStringKeysBenchmark"/>
-  <inherits name="com.google.gwt.benchmark.d8.D8"/>
-</module>
\ No newline at end of file
diff --git a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapInsertStringKeysBenchmark.gwt.xml b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapObjectContainsKeyBenchmark.gwt.xml
similarity index 89%
copy from benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapInsertStringKeysBenchmark.gwt.xml
copy to benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapObjectContainsKeyBenchmark.gwt.xml
index c02c350..c29a20a 100644
--- a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapInsertStringKeysBenchmark.gwt.xml
+++ b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapObjectContainsKeyBenchmark.gwt.xml
@@ -14,6 +14,6 @@
 
 <module>
   <inherits name="com.google.gwt.benchmark.benchmarks.java.util.Util"/>
-  <source path="shared" includes="HashMapInsertStringKeysBenchmark.java"/>
-  <entry-point class="com.google.gwt.benchmark.benchmarks.java.util.shared.HashMapInsertStringKeysBenchmark.EntryPoint"/>
+  <source path="shared" includes="HashMapObjectContainsKeyBenchmark.java"/>
+  <entry-point class="com.google.gwt.benchmark.benchmarks.java.util.shared.HashMapObjectContainsKeyBenchmark.EntryPoint"/>
 </module>
\ No newline at end of file
diff --git a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapCloneManualObjectKeysBenchmarkD8.gwt.xml b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapObjectContainsKeyBenchmarkD8.gwt.xml
similarity index 96%
rename from benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapCloneManualObjectKeysBenchmarkD8.gwt.xml
rename to benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapObjectContainsKeyBenchmarkD8.gwt.xml
index fc7e8b0..71f6785 100644
--- a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapCloneManualObjectKeysBenchmarkD8.gwt.xml
+++ b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapObjectContainsKeyBenchmarkD8.gwt.xml
@@ -13,6 +13,6 @@
 <!-- limitations under the License.                                         -->
 
 <module>
-  <inherits name="com.google.gwt.benchmark.benchmarks.java.util.HashMapCloneManualObjectKeysBenchmark"/>
+  <inherits name="com.google.gwt.benchmark.benchmarks.java.util.HashMapObjectContainsKeyBenchmark"/>
   <inherits name="com.google.gwt.benchmark.d8.D8"/>
 </module>
\ No newline at end of file
diff --git a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapInsertStringKeysBenchmark.gwt.xml b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapObjectIterationBenchmark.gwt.xml
similarity index 85%
copy from benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapInsertStringKeysBenchmark.gwt.xml
copy to benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapObjectIterationBenchmark.gwt.xml
index c02c350..f36f5ca 100644
--- a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapInsertStringKeysBenchmark.gwt.xml
+++ b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapObjectIterationBenchmark.gwt.xml
@@ -1,5 +1,5 @@
 <!--                                                                        -->
-<!-- Copyright 2014 Google Inc.                                             -->
+<!-- Copyright 2015 Google Inc.                                             -->
 <!-- Licensed under the Apache License, Version 2.0 (the "License"); you    -->
 <!-- may not use this file except in compliance with the License. You may   -->
 <!-- may obtain a copy of the License at                                    -->
@@ -14,6 +14,6 @@
 
 <module>
   <inherits name="com.google.gwt.benchmark.benchmarks.java.util.Util"/>
-  <source path="shared" includes="HashMapInsertStringKeysBenchmark.java"/>
-  <entry-point class="com.google.gwt.benchmark.benchmarks.java.util.shared.HashMapInsertStringKeysBenchmark.EntryPoint"/>
+  <source path="shared" includes="HashMapObjectIterationBenchmark.java"/>
+  <entry-point class="com.google.gwt.benchmark.benchmarks.java.util.shared.HashMapObjectIterationBenchmark.EntryPoint"/>
 </module>
\ No newline at end of file
diff --git a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapCloneManualObjectKeysBenchmarkD8.gwt.xml b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapObjectIterationBenchmarkD8.gwt.xml
similarity index 91%
copy from benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapCloneManualObjectKeysBenchmarkD8.gwt.xml
copy to benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapObjectIterationBenchmarkD8.gwt.xml
index fc7e8b0..8575644 100644
--- a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapCloneManualObjectKeysBenchmarkD8.gwt.xml
+++ b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapObjectIterationBenchmarkD8.gwt.xml
@@ -1,5 +1,5 @@
 <!--                                                                        -->
-<!-- Copyright 2014 Google Inc.                                             -->
+<!-- Copyright 2015 Google Inc.                                             -->
 <!-- Licensed under the Apache License, Version 2.0 (the "License"); you    -->
 <!-- may not use this file except in compliance with the License. You may   -->
 <!-- may obtain a copy of the License at                                    -->
@@ -13,6 +13,6 @@
 <!-- limitations under the License.                                         -->
 
 <module>
-  <inherits name="com.google.gwt.benchmark.benchmarks.java.util.HashMapCloneManualObjectKeysBenchmark"/>
+  <inherits name="com.google.gwt.benchmark.benchmarks.java.util.HashMapObjectIterationBenchmark"/>
   <inherits name="com.google.gwt.benchmark.d8.D8"/>
 </module>
\ No newline at end of file
diff --git a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapInsertStringKeysBenchmark.gwt.xml b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapObjectPutBenchmark.gwt.xml
similarity index 89%
copy from benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapInsertStringKeysBenchmark.gwt.xml
copy to benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapObjectPutBenchmark.gwt.xml
index c02c350..0857e6e 100644
--- a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapInsertStringKeysBenchmark.gwt.xml
+++ b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapObjectPutBenchmark.gwt.xml
@@ -14,6 +14,6 @@
 
 <module>
   <inherits name="com.google.gwt.benchmark.benchmarks.java.util.Util"/>
-  <source path="shared" includes="HashMapInsertStringKeysBenchmark.java"/>
-  <entry-point class="com.google.gwt.benchmark.benchmarks.java.util.shared.HashMapInsertStringKeysBenchmark.EntryPoint"/>
+  <source path="shared" includes="HashMapObjectPutBenchmark.java"/>
+  <entry-point class="com.google.gwt.benchmark.benchmarks.java.util.shared.HashMapObjectPutBenchmark.EntryPoint"/>
 </module>
\ No newline at end of file
diff --git a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapCloneManualObjectKeysBenchmarkD8.gwt.xml b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapObjectPutBenchmarkD8.gwt.xml
similarity index 96%
copy from benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapCloneManualObjectKeysBenchmarkD8.gwt.xml
copy to benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapObjectPutBenchmarkD8.gwt.xml
index fc7e8b0..c63469f 100644
--- a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapCloneManualObjectKeysBenchmarkD8.gwt.xml
+++ b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapObjectPutBenchmarkD8.gwt.xml
@@ -13,6 +13,6 @@
 <!-- limitations under the License.                                         -->
 
 <module>
-  <inherits name="com.google.gwt.benchmark.benchmarks.java.util.HashMapCloneManualObjectKeysBenchmark"/>
+  <inherits name="com.google.gwt.benchmark.benchmarks.java.util.HashMapObjectPutBenchmark"/>
   <inherits name="com.google.gwt.benchmark.d8.D8"/>
 </module>
\ No newline at end of file
diff --git a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapInsertStringKeysBenchmark.gwt.xml b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapStringPutBenchmark.gwt.xml
similarity index 89%
rename from benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapInsertStringKeysBenchmark.gwt.xml
rename to benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapStringPutBenchmark.gwt.xml
index c02c350..2d140c3 100644
--- a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapInsertStringKeysBenchmark.gwt.xml
+++ b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapStringPutBenchmark.gwt.xml
@@ -14,6 +14,6 @@
 
 <module>
   <inherits name="com.google.gwt.benchmark.benchmarks.java.util.Util"/>
-  <source path="shared" includes="HashMapInsertStringKeysBenchmark.java"/>
-  <entry-point class="com.google.gwt.benchmark.benchmarks.java.util.shared.HashMapInsertStringKeysBenchmark.EntryPoint"/>
+  <source path="shared" includes="HashMapStringPutBenchmark.java"/>
+  <entry-point class="com.google.gwt.benchmark.benchmarks.java.util.shared.HashMapStringPutBenchmark.EntryPoint"/>
 </module>
\ No newline at end of file
diff --git a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapCloneManualObjectKeysBenchmarkD8.gwt.xml b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapStringPutBenchmarkD8.gwt.xml
similarity index 96%
copy from benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapCloneManualObjectKeysBenchmarkD8.gwt.xml
copy to benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapStringPutBenchmarkD8.gwt.xml
index fc7e8b0..50c90ec 100644
--- a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapCloneManualObjectKeysBenchmarkD8.gwt.xml
+++ b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/HashMapStringPutBenchmarkD8.gwt.xml
@@ -13,6 +13,6 @@
 <!-- limitations under the License.                                         -->
 
 <module>
-  <inherits name="com.google.gwt.benchmark.benchmarks.java.util.HashMapCloneManualObjectKeysBenchmark"/>
+  <inherits name="com.google.gwt.benchmark.benchmarks.java.util.HashMapStringPutBenchmark"/>
   <inherits name="com.google.gwt.benchmark.d8.D8"/>
 </module>
\ No newline at end of file
diff --git a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapCloneManualObjectKeysBenchmark.java b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapCloneManualObjectKeysBenchmark.java
deleted file mode 100644
index 405af2c..0000000
--- a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapCloneManualObjectKeysBenchmark.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright 2014 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.google.gwt.benchmark.benchmarks.java.util.shared;
-
-import com.google.gwt.benchmark.framework.client.AbstractBenchmarkEntryPoint;
-import com.google.gwt.benchmark.framework.shared.AbstractBenchmark;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-
-/**
- * Benchmark for copying operation of a {@link HashMap}.
- */
-public class HashMapCloneManualObjectKeysBenchmark extends AbstractBenchmark {
-
-  public static class EntryPoint extends AbstractBenchmarkEntryPoint {
-    @Override
-    protected AbstractBenchmark getBenchmark() {
-      return new HashMapCloneManualObjectKeysBenchmark();
-    }
-  }
-
-  private int length;
-
-  private HashMap<Object, Object> map;
-
-  public HashMapCloneManualObjectKeysBenchmark() {
-    super("ManualCloneObjectHashMap");
-  }
-
-  @Override
-  public Object run() {
-    Map<Object, Object> clone = new HashMap<Object, Object>();
-    for( Entry<Object, Object> entries : map.entrySet())
-    {
-      clone.put(entries.getKey(), entries.getValue());
-    }
-
-    if(clone.size() != length) {
-      throw new RuntimeException();
-    }
-
-    return clone;
-  }
-
-  @Override
-  public void setupOneTime() {
-    length = 1000;
-
-    map = new HashMap<Object, Object>();
-
-    for (int i = 0; i < length; i++) {
-      Integer key = i;
-      Integer value =  i + 1;
-      map.put(key, value);
-    }
-  }
-}
\ No newline at end of file
diff --git a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapCloneManualStringKeysBenchmark.java b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapCloneManualStringKeysBenchmark.java
index 1fa13c4..d03b2da 100644
--- a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapCloneManualStringKeysBenchmark.java
+++ b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapCloneManualStringKeysBenchmark.java
@@ -39,7 +39,7 @@
   private HashMap<String, String> map;
 
   public HashMapCloneManualStringKeysBenchmark() {
-    super("ManualCloneStringHashMap");
+    super("HashMapCloneManualStringKeysBenchmark");
   }
 
   @Override
diff --git a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapObjectContainsKeyBenchmark.java b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapObjectContainsKeyBenchmark.java
new file mode 100644
index 0000000..e8e551f
--- /dev/null
+++ b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapObjectContainsKeyBenchmark.java
@@ -0,0 +1,90 @@
+/*
+ * Copyright 2014 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.google.gwt.benchmark.benchmarks.java.util.shared;
+
+import com.google.gwt.benchmark.benchmarks.java.util.shared.helper.Key;
+import com.google.gwt.benchmark.benchmarks.java.util.shared.helper.Value;
+import com.google.gwt.benchmark.collection.shared.CollectionFactory;
+import com.google.gwt.benchmark.collection.shared.JavaScriptArray;
+import com.google.gwt.benchmark.collection.shared.JavaScriptArrayBoolean;
+import com.google.gwt.benchmark.framework.client.AbstractBenchmarkEntryPoint;
+import com.google.gwt.benchmark.framework.shared.AbstractBenchmark;
+
+import java.util.HashMap;
+
+/**
+ * Benchmark for {@link HashMap} get performance for String keys.
+ */
+public class HashMapObjectContainsKeyBenchmark extends AbstractBenchmark {
+
+  public static class EntryPoint extends AbstractBenchmarkEntryPoint {
+    @Override
+    protected AbstractBenchmark getBenchmark() {
+      return new HashMapObjectContainsKeyBenchmark();
+    }
+  }
+
+  private JavaScriptArray<Object> keysInMap;
+
+  private JavaScriptArray<Object> keysNotInMap;
+
+  private int length;
+
+  private HashMap<Object, Object> map;
+
+  public HashMapObjectContainsKeyBenchmark() {
+    super("HashMapObjectContainsKeyBenchmark");
+  }
+
+  @Override
+  public Object run() {
+    JavaScriptArrayBoolean inMap = CollectionFactory.createBoolean(length);
+    JavaScriptArrayBoolean notInMap = CollectionFactory.createBoolean(length);
+
+    for (int i = 0; i < length; i++) {
+      inMap.set(i, map.containsKey(keysInMap.get(i)));
+      notInMap.set(i, map.containsKey(keysNotInMap.get(i)));
+    }
+    for (int i = 0; i < length; i++) {
+      if (!inMap.get(i)) {
+        throw new RuntimeException("Value was not in map at index " + i);
+      }
+      if (notInMap.get(i)) {
+        throw new RuntimeException("Value was in map at index " + i);
+      }
+    }
+
+    return new Object[] {inMap, notInMap};
+
+  }
+
+  @Override
+  public void setupOneTime() {
+    length = 1000;
+    keysInMap = CollectionFactory.create();
+    keysNotInMap = CollectionFactory.create();
+
+    map = new HashMap<Object, Object>();
+
+    for (int i = 0; i < length; i++) {
+      Key key = new Key("thisissomekey" + i);
+      Value value = new Value("thisissomevalue" + i);
+      keysInMap.push(key);
+      keysNotInMap.push(value);
+      map.put(key, value);
+    }
+  }
+}
diff --git a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapInsertObjectKeysBenchmark.java b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapObjectIterationBenchmark.java
similarity index 66%
copy from benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapInsertObjectKeysBenchmark.java
copy to benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapObjectIterationBenchmark.java
index decebf0..e5f63a9 100644
--- a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapInsertObjectKeysBenchmark.java
+++ b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapObjectIterationBenchmark.java
@@ -23,51 +23,53 @@
 import com.google.gwt.benchmark.framework.shared.AbstractBenchmark;
 
 import java.util.HashMap;
+import java.util.Map.Entry;
 
 /**
- * Benchmark for object insertion (not String) into {@link HashMap}.
+ * Benchmark for iteration operation of a {@link HashMap}.
  */
-public class HashMapInsertObjectKeysBenchmark extends AbstractBenchmark {
+public class HashMapObjectIterationBenchmark extends AbstractBenchmark {
 
   public static class EntryPoint extends AbstractBenchmarkEntryPoint {
     @Override
     protected AbstractBenchmark getBenchmark() {
-      return new HashMapInsertObjectKeysBenchmark();
+      return new HashMapObjectIterationBenchmark();
     }
   }
 
-  private JavaScriptArray<Key> keys;
   private int length;
-  private JavaScriptArray<Value> values;
 
-  public HashMapInsertObjectKeysBenchmark() {
-    super(HashMapInsertObjectKeysBenchmark.class.getName());
+  private HashMap<Object, Object> map;
+
+  public HashMapObjectIterationBenchmark() {
+    super("HashMapObjectIterationBenchmark");
   }
 
   @Override
   public Object run() {
-    HashMap<Key, Value> map = new HashMap<Key,Value>();
+    JavaScriptArray<Object> array = CollectionFactory.create(length * 2);
 
-    for (int i = 0; i < keys.length(); i++) {
-      map.put(keys.get(i), values.get(i));
+    int count = 0;
+    for (Entry<Object, Object> entry : map.entrySet()) {
+      array.set(count++, entry.getKey());
+      array.set(count++, entry.getValue());
     }
 
-    if(map.size() != length) {
+    if (array.length() != length * 2) {
       throw new RuntimeException();
     }
 
-    return map;
+    return array;
   }
 
   @Override
   public void setupOneTime() {
     length = 1000;
-    keys = CollectionFactory.create();
-    values = CollectionFactory.create();
+
+    map = new HashMap<Object, Object>();
 
     for (int i = 0; i < length; i++) {
-      keys.push(new Key("thisissomekey" + i));
-      values.push(new Value("thisissomevalue" + i));
+      map.put(new Key("thisissomekey" + i), new Value("thisissomevalue" + i));
     }
   }
-}
+}
\ No newline at end of file
diff --git a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapInsertObjectKeysBenchmark.java b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapObjectPutBenchmark.java
similarity index 89%
rename from benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapInsertObjectKeysBenchmark.java
rename to benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapObjectPutBenchmark.java
index decebf0..4f6d648 100644
--- a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapInsertObjectKeysBenchmark.java
+++ b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapObjectPutBenchmark.java
@@ -27,12 +27,12 @@
 /**
  * Benchmark for object insertion (not String) into {@link HashMap}.
  */
-public class HashMapInsertObjectKeysBenchmark extends AbstractBenchmark {
+public class HashMapObjectPutBenchmark extends AbstractBenchmark {
 
   public static class EntryPoint extends AbstractBenchmarkEntryPoint {
     @Override
     protected AbstractBenchmark getBenchmark() {
-      return new HashMapInsertObjectKeysBenchmark();
+      return new HashMapObjectPutBenchmark();
     }
   }
 
@@ -40,8 +40,8 @@
   private int length;
   private JavaScriptArray<Value> values;
 
-  public HashMapInsertObjectKeysBenchmark() {
-    super(HashMapInsertObjectKeysBenchmark.class.getName());
+  public HashMapObjectPutBenchmark() {
+    super("HashMapObjectPutBenchmark");
   }
 
   @Override
diff --git a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapStringIterationBenchmark.java b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapStringIterationBenchmark.java
index 7ec03dc..88e8430 100644
--- a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapStringIterationBenchmark.java
+++ b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapStringIterationBenchmark.java
@@ -40,7 +40,7 @@
   private HashMap<String, String> map;
 
   public HashMapStringIterationBenchmark() {
-    super("StringHashMapIterationBenchmark");
+    super("HashMapStringIterationBenchmark");
   }
 
   @Override
diff --git a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapInsertStringKeysBenchmark.java b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapStringPutBenchmark.java
similarity index 88%
rename from benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapInsertStringKeysBenchmark.java
rename to benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapStringPutBenchmark.java
index 81fc9c9..4af940e 100644
--- a/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapInsertStringKeysBenchmark.java
+++ b/benchmarks/src/main/java/com/google/gwt/benchmark/benchmarks/java/util/shared/HashMapStringPutBenchmark.java
@@ -25,12 +25,12 @@
 /**
  * Benchmark for String insertion into {@link HashMap}.
  */
-public class HashMapInsertStringKeysBenchmark extends AbstractBenchmark {
+public class HashMapStringPutBenchmark extends AbstractBenchmark {
 
   public static class EntryPoint extends AbstractBenchmarkEntryPoint {
     @Override
     protected AbstractBenchmark getBenchmark() {
-      return new HashMapInsertStringKeysBenchmark();
+      return new HashMapStringPutBenchmark();
     }
   }
 
@@ -38,8 +38,8 @@
   private int length;
   private JavaScriptArray<String> values;
 
-  public HashMapInsertStringKeysBenchmark() {
-    super(HashMapInsertStringKeysBenchmark.class.getName());
+  public HashMapStringPutBenchmark() {
+    super("HashMapObjectPutBenchmark");
   }
 
   @Override