Index: src/org/openstreetmap/josm/actions/CombineWayAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/CombineWayAction.java	(revision 6099)
+++ src/org/openstreetmap/josm/actions/CombineWayAction.java	(working copy)
@@ -153,7 +153,7 @@
                 List<Way> unreversedTagWays = new ArrayList<Way>(ways);
                 unreversedTagWays.removeAll(reversedWays);
                 ReverseWayTagCorrector reverseWayTagCorrector = new ReverseWayTagCorrector();
-                List<Way> reversedTagWays = new ArrayList<Way>();
+                List<Way> reversedTagWays = new ArrayList<Way>(reversedWays.size());
                 Collection<Command> changePropertyCommands =  null;
                 for (Way w : reversedWays) {
                     Way wnew = new Way(w);
@@ -496,7 +496,7 @@
         }
 
         protected Set<Node> getNodes(Stack<NodePair> pairs) {
-            HashSet<Node> nodes = new LinkedHashSet<Node>();
+            HashSet<Node> nodes = new LinkedHashSet<Node>(2*pairs.size());
             for (NodePair pair: pairs) {
                 nodes.add(pair.getA());
                 nodes.add(pair.getB());
@@ -516,7 +516,7 @@
         }
 
         protected Set<Node> getNodes() {
-            Set<Node> nodes = new LinkedHashSet<Node>();
+            Set<Node> nodes = new LinkedHashSet<Node>(2 * edges.size());
             for (NodePair pair: edges) {
                 nodes.add(pair.getA());
                 nodes.add(pair.getB());
Index: src/org/openstreetmap/josm/actions/CreateCircleAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/CreateCircleAction.java	(revision 6099)
+++ src/org/openstreetmap/josm/actions/CreateCircleAction.java	(working copy)
@@ -136,7 +136,7 @@
             if (a1 < a2) { double at = a1; Node nt = n1; a1 = a2; n1 = n2; a2 = at; n2 = nt; }
 
             // build a way for the circle
-            List<Node> wayToAdd = new ArrayList<Node>();
+            List<Node> wayToAdd = new ArrayList<Node>(numberOfNodesInCircle + 1);
 
             for (int i = 1; i <= numberOfNodesInCircle; i++) {
                 double a = a2 + 2*Math.PI*(1.0 - i/(double)numberOfNodesInCircle); // "1-" to get it clock-wise
Index: src/org/openstreetmap/josm/actions/PasteTagsAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/PasteTagsAction.java	(revision 6099)
+++ src/org/openstreetmap/josm/actions/PasteTagsAction.java	(working copy)
@@ -262,12 +262,13 @@
      */
     public static boolean pasteTagsFromText(Collection<OsmPrimitive> selection, String text) {
         Map<String, String> tags = TextTagParser.readTagsFromText(text);
-        List<Command> commands = new ArrayList<Command>();
         if (tags==null || tags.isEmpty()) {
             TextTagParser.showBadBufferMessage(help);
             return false;
         }
         if (!TextTagParser.validateTags(tags)) return false;
+
+        List<Command> commands = new ArrayList<Command>(tags.size());
         String v;
         for (String key: tags.keySet()) {
             v = tags.get(key);
Index: src/org/openstreetmap/josm/actions/search/SearchAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/search/SearchAction.java	(revision 6099)
+++ src/org/openstreetmap/josm/actions/search/SearchAction.java	(working copy)
@@ -102,7 +102,7 @@
         while (searchHistory.size() > maxsize) {
             searchHistory.removeLast();
         }
-        List<String> savedHistory = new ArrayList<String>();
+        List<String> savedHistory = new ArrayList<String>(searchHistory.size());
         for (SearchSetting item: searchHistory) {
             savedHistory.add(item.writeToString());
         }
Index: src/org/openstreetmap/josm/command/DeleteCommand.java
===================================================================
--- src/org/openstreetmap/josm/command/DeleteCommand.java	(revision 6099)
+++ src/org/openstreetmap/josm/command/DeleteCommand.java	(working copy)
@@ -201,7 +201,7 @@
         if (toDelete.size() == 1)
             return null;
         else {
-            List<PseudoCommand> children = new ArrayList<PseudoCommand>();
+            List<PseudoCommand> children = new ArrayList<PseudoCommand>(toDelete.size());
             for (final OsmPrimitive osm : toDelete) {
                 children.add(new PseudoCommand() {
 
Index: src/org/openstreetmap/josm/data/validation/tests/SimilarNamedWays.java
===================================================================
--- src/org/openstreetmap/josm/data/validation/tests/SimilarNamedWays.java	(revision 6099)
+++ src/org/openstreetmap/josm/data/validation/tests/SimilarNamedWays.java	(working copy)
@@ -79,7 +79,7 @@
 
                 int levenshteinDistance = getLevenshteinDistance(name, name2);
                 if (0 < levenshteinDistance && levenshteinDistance <= 2) {
-                    List<OsmPrimitive> primitives = new ArrayList<OsmPrimitive>();
+                    List<OsmPrimitive> primitives = new ArrayList<OsmPrimitive>(2);
                     primitives.add(w);
                     primitives.add(w2);
                     errors.add(new TestError(this, Severity.WARNING, tr("Similarly named ways"), SIMILAR_NAMED, primitives));
Index: src/org/openstreetmap/josm/data/validation/tests/UnconnectedWays.java
===================================================================
--- src/org/openstreetmap/josm/data/validation/tests/UnconnectedWays.java	(revision 6099)
+++ src/org/openstreetmap/josm/data/validation/tests/UnconnectedWays.java	(working copy)
@@ -244,7 +244,7 @@
             }
             LatLon topLeft  = new LatLon(y2+fudge, x1-fudge);
             LatLon botRight = new LatLon(y1-fudge, x2+fudge);
-            List<LatLon> ret = new ArrayList<LatLon>();
+            List<LatLon> ret = new ArrayList<LatLon>(2);
             ret.add(topLeft);
             ret.add(botRight);
             return ret;
Index: src/org/openstreetmap/josm/gui/MapStatus.java
===================================================================
--- src/org/openstreetmap/josm/gui/MapStatus.java	(revision 6099)
+++ src/org/openstreetmap/josm/gui/MapStatus.java	(working copy)
@@ -312,7 +312,7 @@
 
                                         // These labels may need to be updated from the outside
                                         // so collect them
-                                        List<JLabel> lbls = new ArrayList<JLabel>();
+                                        List<JLabel> lbls = new ArrayList<JLabel>(osms.size());
                                         for (final OsmPrimitive osm : osms) {
                                             JLabel l = popupBuildPrimitiveLabels(osm);
                                             lbls.add(l);
Index: src/org/openstreetmap/josm/gui/io/CloseChangesetDialog.java
===================================================================
--- src/org/openstreetmap/josm/gui/io/CloseChangesetDialog.java	(revision 6099)
+++ src/org/openstreetmap/josm/gui/io/CloseChangesetDialog.java	(working copy)
@@ -213,7 +213,7 @@
      */
     public Collection<Changeset> getSelectedChangesets() {
         Object [] sel = lstOpenChangesets.getSelectedValues();
-        ArrayList<Changeset> ret = new ArrayList<Changeset>();
+        ArrayList<Changeset> ret = new ArrayList<Changeset>(sel.length);
         for (Object o: sel) {
             ret.add((Changeset)o);
         }
Index: src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java
===================================================================
--- src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java	(revision 6099)
+++ src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java	(working copy)
@@ -290,8 +290,8 @@
             gc.anchor = GridBagConstraints.WEST;
             panelTf.add(new JLabel(tr("I am in the timezone of: ")), gc);
 
-            Vector<String> vtTimezones = new Vector<String>();
             String[] tmp = TimeZone.getAvailableIDs();
+            Vector<String> vtTimezones = new Vector<String>(tmp.length);
 
             for (String tzStr : tmp) {
                 TimeZone tz = TimeZone.getTimeZone(tzStr);
Index: src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java
===================================================================
--- src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java	(revision 6099)
+++ src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java	(working copy)
@@ -836,7 +836,7 @@
     }
 
     public List<ImageEntry> getImages() {
-        List<ImageEntry> copy = new ArrayList<ImageEntry>();
+        List<ImageEntry> copy = new ArrayList<ImageEntry>(data.size());
         for (ImageEntry ie : data) {
             copy.add(ie.clone());
         }
Index: src/org/openstreetmap/josm/gui/preferences/SourceEditor.java
===================================================================
--- src/org/openstreetmap/josm/gui/preferences/SourceEditor.java	(revision 6099)
+++ src/org/openstreetmap/josm/gui/preferences/SourceEditor.java	(working copy)
@@ -1530,7 +1530,7 @@
         }
 
         public boolean put(Collection<? extends SourceEntry> entries) {
-            Collection<Map<String, String>> setting = new ArrayList<Map<String, String>>();
+            Collection<Map<String, String>> setting = new ArrayList<Map<String, String>>(entries.size());
             for (SourceEntry e : entries) {
                 setting.add(serialize(e));
             }
Index: src/org/openstreetmap/josm/io/imagery/WMSImagery.java
===================================================================
--- src/org/openstreetmap/josm/io/imagery/WMSImagery.java	(revision 6099)
+++ src/org/openstreetmap/josm/io/imagery/WMSImagery.java	(working copy)
@@ -201,7 +201,7 @@
     }
 
     private List<LayerDetails> parseLayers(List<Element> children, Set<String> parentCrs) {
-        List<LayerDetails> details = new ArrayList<LayerDetails>();
+        List<LayerDetails> details = new ArrayList<LayerDetails>(children.size());
         for (Element element : children) {
             details.add(parseLayer(element, parentCrs));
         }
