Index: trunk/src/org/openstreetmap/josm/actions/PasteTagsAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/PasteTagsAction.java	(revision 8387)
+++ trunk/src/org/openstreetmap/josm/actions/PasteTagsAction.java	(revision 8388)
@@ -10,5 +10,5 @@
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.HashMap;
+import java.util.EnumMap;
 import java.util.List;
 import java.util.Map;
@@ -119,5 +119,5 @@
 
         protected Map<OsmPrimitiveType, Integer> getSourceStatistics() {
-            Map<OsmPrimitiveType, Integer> ret = new HashMap<>();
+            Map<OsmPrimitiveType, Integer> ret = new EnumMap<>(OsmPrimitiveType.class);
             for (OsmPrimitiveType type: OsmPrimitiveType.dataValues()) {
                 if (!getSourceTagsByType(type).isEmpty()) {
@@ -129,5 +129,5 @@
 
         protected Map<OsmPrimitiveType, Integer> getTargetStatistics() {
-            Map<OsmPrimitiveType, Integer> ret = new HashMap<>();
+            Map<OsmPrimitiveType, Integer> ret = new EnumMap<>(OsmPrimitiveType.class);
             for (OsmPrimitiveType type: OsmPrimitiveType.dataValues()) {
                 int count = OsmPrimitive.getFilteredList(target, type.getOsmClass()).size();
Index: trunk/src/org/openstreetmap/josm/command/DeleteCommand.java
===================================================================
--- trunk/src/org/openstreetmap/josm/command/DeleteCommand.java	(revision 8387)
+++ trunk/src/org/openstreetmap/josm/command/DeleteCommand.java	(revision 8388)
@@ -10,4 +10,5 @@
 import java.util.Collection;
 import java.util.Collections;
+import java.util.EnumSet;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -157,5 +158,5 @@
 
     private Set<OsmPrimitiveType> getTypesToDelete() {
-        Set<OsmPrimitiveType> typesToDelete = new HashSet<>();
+        Set<OsmPrimitiveType> typesToDelete = EnumSet.noneOf(OsmPrimitiveType.class);
         for (OsmPrimitive osm : toDelete) {
             typesToDelete.add(OsmPrimitiveType.from(osm));
Index: trunk/src/org/openstreetmap/josm/gui/MainApplication.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 8387)
+++ trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 8388)
@@ -31,5 +31,5 @@
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.HashMap;
+import java.util.EnumMap;
 import java.util.LinkedList;
 import java.util.List;
@@ -227,5 +227,5 @@
 
         public static Map<Option, Collection<String>> fromStringMap(Map<String, Collection<String>> opts) {
-            Map<Option, Collection<String>> res = new HashMap<>();
+            Map<Option, Collection<String>> res = new EnumMap<>(Option.class);
             for (Map.Entry<String, Collection<String>> e : opts.entrySet()) {
                 Option o = Option.valueOf(e.getKey().toUpperCase().replace("-", "_"));
@@ -247,5 +247,5 @@
         Getopt g = new Getopt("JOSM", args, "hv", los.toArray(new LongOpt[los.size()]));
 
-        Map<Option, Collection<String>> argMap = new HashMap<>();
+        Map<Option, Collection<String>> argMap = new EnumMap<>(Option.class);
 
         int c;
Index: trunk/src/org/openstreetmap/josm/gui/conflict/pair/ListMergeModel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/conflict/pair/ListMergeModel.java	(revision 8387)
+++ trunk/src/org/openstreetmap/josm/gui/conflict/pair/ListMergeModel.java	(revision 8388)
@@ -13,5 +13,5 @@
 import java.beans.PropertyChangeListener;
 import java.util.ArrayList;
-import java.util.HashMap;
+import java.util.EnumMap;
 import java.util.List;
 import java.util.Map;
@@ -182,6 +182,9 @@
     }
 
+    /**
+     * Constructs a new {@code ListMergeModel}.
+     */
     public ListMergeModel() {
-        entries = new HashMap<>();
+        entries = new EnumMap<>(ListRole.class);
         for (ListRole role : ListRole.values()) {
             entries.put(role, new ArrayList<T>());
Index: trunk/src/org/openstreetmap/josm/gui/conflict/tags/PasteTagsConflictResolverDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/conflict/tags/PasteTagsConflictResolverDialog.java	(revision 8387)
+++ trunk/src/org/openstreetmap/josm/gui/conflict/tags/PasteTagsConflictResolverDialog.java	(revision 8388)
@@ -17,4 +17,5 @@
 import java.beans.PropertyChangeListener;
 import java.util.ArrayList;
+import java.util.EnumMap;
 import java.util.HashMap;
 import java.util.List;
@@ -46,5 +47,5 @@
     private static final Map<OsmPrimitiveType, String> PANE_TITLES;
     static {
-        PANE_TITLES = new HashMap<>();
+        PANE_TITLES = new EnumMap<>(OsmPrimitiveType.class);
         PANE_TITLES.put(OsmPrimitiveType.NODE, tr("Tags from nodes"));
         PANE_TITLES.put(OsmPrimitiveType.WAY, tr("Tags from ways"));
@@ -82,5 +83,5 @@
         setTitle(tr("Conflicts in pasted tags"));
         allPrimitivesResolver = new TagConflictResolver();
-        resolvers = new HashMap<>();
+        resolvers = new EnumMap<>(OsmPrimitiveType.class);
         for (OsmPrimitiveType type: OsmPrimitiveType.dataValues()) {
             resolvers.put(type, new TagConflictResolver());
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/BasicChangesetQueryPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/BasicChangesetQueryPanel.java	(revision 8387)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/BasicChangesetQueryPanel.java	(revision 8388)
@@ -10,5 +10,5 @@
 import java.awt.event.ItemEvent;
 import java.awt.event.ItemListener;
-import java.util.HashMap;
+import java.util.EnumMap;
 import java.util.Map;
 
@@ -49,6 +49,6 @@
 
         ButtonGroup bgQueries = new ButtonGroup();
-        rbQueries = new HashMap<>();
-        lblQueries = new HashMap<>();
+        rbQueries = new EnumMap<>(BasicQuery.class);
+        lblQueries = new EnumMap<>(BasicQuery.class);
         SelectQueryHandler selectedQueryHandler = new SelectQueryHandler();
         for (BasicQuery q: BasicQuery.values()) {
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/validator/ValidatorTreePanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/validator/ValidatorTreePanel.java	(revision 8387)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/validator/ValidatorTreePanel.java	(revision 8388)
@@ -8,4 +8,5 @@
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.EnumMap;
 import java.util.Enumeration;
 import java.util.HashMap;
@@ -173,6 +174,6 @@
         }
 
-        Map<Severity, MultiMap<String, TestError>> errorTree = new HashMap<>();
-        Map<Severity, HashMap<String, MultiMap<String, TestError>>> errorTreeDeep = new HashMap<>();
+        Map<Severity, MultiMap<String, TestError>> errorTree = new EnumMap<>(Severity.class);
+        Map<Severity, HashMap<String, MultiMap<String, TestError>>> errorTreeDeep = new EnumMap<>(Severity.class);
         for (Severity s : Severity.values()) {
             errorTree.put(s, new MultiMap<String, TestError>(20));
Index: trunk/src/org/openstreetmap/josm/gui/history/RelationMemberListTableCellRenderer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/RelationMemberListTableCellRenderer.java	(revision 8387)
+++ trunk/src/org/openstreetmap/josm/gui/history/RelationMemberListTableCellRenderer.java	(revision 8388)
@@ -6,5 +6,5 @@
 import java.awt.Color;
 import java.awt.Component;
-import java.util.HashMap;
+import java.util.EnumMap;
 import java.util.Map;
 
@@ -20,7 +20,6 @@
 
 /**
- * The {@link TableCellRenderer} for a list of relation members in {@link HistoryBrowser}
- *
- *
+ * The {@link TableCellRenderer} for a list of relation members in {@link HistoryBrowser}.
+ * @since 1709
  */
 public class RelationMemberListTableCellRenderer extends JLabel implements TableCellRenderer {
@@ -38,5 +37,5 @@
     public RelationMemberListTableCellRenderer() {
         setOpaque(true);
-        icons = new HashMap<>();
+        icons = new EnumMap<>(OsmPrimitiveType.class);
         icons.put(OsmPrimitiveType.NODE, ImageProvider.get("data", "node"));
         icons.put(OsmPrimitiveType.WAY, ImageProvider.get("data", "way"));
Index: trunk/src/org/openstreetmap/josm/gui/io/UploadStrategySelectionPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/io/UploadStrategySelectionPanel.java	(revision 8387)
+++ trunk/src/org/openstreetmap/josm/gui/io/UploadStrategySelectionPanel.java	(revision 8388)
@@ -18,5 +18,5 @@
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
-import java.util.HashMap;
+import java.util.EnumMap;
 import java.util.Map;
 import java.util.Map.Entry;
@@ -74,7 +74,7 @@
         pnl.setLayout(new GridBagLayout());
         ButtonGroup bgStrategies = new ButtonGroup();
-        rbStrategy = new HashMap<>();
-        lblStrategies = new HashMap<>();
-        lblNumRequests = new HashMap<>();
+        rbStrategy = new EnumMap<>(UploadStrategy.class);
+        lblStrategies = new EnumMap<>(UploadStrategy.class);
+        lblNumRequests = new EnumMap<>(UploadStrategy.class);
         for (UploadStrategy strategy: UploadStrategy.values()) {
             rbStrategy.put(strategy, new JRadioButton());
Index: trunk/src/org/openstreetmap/josm/gui/preferences/plugin/PluginUpdatePolicyPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/plugin/PluginUpdatePolicyPanel.java	(revision 8387)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/plugin/PluginUpdatePolicyPanel.java	(revision 8388)
@@ -8,5 +8,5 @@
 import java.awt.GridBagLayout;
 import java.awt.Insets;
-import java.util.HashMap;
+import java.util.EnumMap;
 import java.util.Map;
 
@@ -68,5 +68,5 @@
 
         ButtonGroup bgVersionBasedUpdatePolicy = new ButtonGroup();
-        rbVersionBasedUpatePolicy = new HashMap<>();
+        rbVersionBasedUpatePolicy = new EnumMap<>(Policy.class);
         JRadioButton btn = new JRadioButton(tr("Ask before updating"));
         rbVersionBasedUpatePolicy.put(Policy.ASK, btn);
@@ -109,5 +109,5 @@
 
         ButtonGroup bgTimeBasedUpdatePolicy = new ButtonGroup();
-        rbTimeBasedUpatePolicy = new HashMap<>();
+        rbTimeBasedUpatePolicy = new EnumMap<>(Policy.class);
         JRadioButton btn = new JRadioButton(tr("Ask before updating"));
         btn.addChangeListener(changeListener);
Index: trunk/src/org/openstreetmap/josm/gui/preferences/server/ProxyPreferencesPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/server/ProxyPreferencesPanel.java	(revision 8387)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/server/ProxyPreferencesPanel.java	(revision 8388)
@@ -15,5 +15,5 @@
 import java.net.PasswordAuthentication;
 import java.net.ProxySelector;
-import java.util.HashMap;
+import java.util.EnumMap;
 import java.util.Map;
 
@@ -237,5 +237,5 @@
 
         ButtonGroup bgProxyPolicy = new ButtonGroup();
-        rbProxyPolicy = new HashMap<>();
+        rbProxyPolicy = new EnumMap<>(ProxyPolicy.class);
         ProxyPolicyChangeListener policyChangeListener = new ProxyPolicyChangeListener();
         for (ProxyPolicy pp: ProxyPolicy.values()) {
Index: trunk/src/org/openstreetmap/josm/io/auth/AbstractCredentialsAgent.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/auth/AbstractCredentialsAgent.java	(revision 8387)
+++ trunk/src/org/openstreetmap/josm/io/auth/AbstractCredentialsAgent.java	(revision 8388)
@@ -5,5 +5,5 @@
 import java.net.Authenticator.RequestorType;
 import java.net.PasswordAuthentication;
-import java.util.HashMap;
+import java.util.EnumMap;
 import java.util.Map;
 
@@ -13,5 +13,5 @@
 public abstract class AbstractCredentialsAgent implements CredentialsAgent {
 
-    protected Map<RequestorType, PasswordAuthentication> memoryCredentialsCache = new HashMap<>();
+    protected Map<RequestorType, PasswordAuthentication> memoryCredentialsCache = new EnumMap<>(RequestorType.class);
 
     @Override
Index: trunk/src/org/openstreetmap/josm/io/auth/DefaultAuthenticator.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/auth/DefaultAuthenticator.java	(revision 8387)
+++ trunk/src/org/openstreetmap/josm/io/auth/DefaultAuthenticator.java	(revision 8388)
@@ -4,5 +4,5 @@
 import java.net.Authenticator;
 import java.net.PasswordAuthentication;
-import java.util.HashMap;
+import java.util.EnumMap;
 import java.util.Map;
 
@@ -33,5 +33,5 @@
     }
 
-    private final Map<RequestorType, Boolean> credentialsTried = new HashMap<>();
+    private final Map<RequestorType, Boolean> credentialsTried = new EnumMap<>(RequestorType.class);
     private boolean enabled = true;
 
