Index: trunk/src/org/openstreetmap/josm/actions/JoinAreasAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/JoinAreasAction.java	(revision 17371)
+++ trunk/src/org/openstreetmap/josm/actions/JoinAreasAction.java	(revision 17374)
@@ -708,6 +708,5 @@
         //  see #9599
         if (discardedWays.stream().anyMatch(w -> !w.isNew())) {
-            for (int i = 0; i < boundaries.size(); i++) {
-                AssembledPolygon ring = boundaries.get(i);
+            for (AssembledPolygon ring : boundaries) {
                 for (int k = 0; k < ring.ways.size(); k++) {
                     WayInPolygon ringWay = ring.ways.get(k);
Index: trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java	(revision 17371)
+++ trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java	(revision 17374)
@@ -1124,6 +1124,6 @@
 
             if (cyclePrims && shift) {
-                for (Iterator<OsmPrimitive> i = cycleList.iterator(); i.hasNext();) {
-                    nxt = i.next();
+                for (OsmPrimitive osmPrimitive : cycleList) {
+                    nxt = osmPrimitive;
                     if (!nxt.isSelected()) {
                         break; // take first primitive in cycleList not in sel
Index: trunk/src/org/openstreetmap/josm/data/cache/HostLimitQueue.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/cache/HostLimitQueue.java	(revision 17371)
+++ trunk/src/org/openstreetmap/josm/data/cache/HostLimitQueue.java	(revision 17374)
@@ -4,5 +4,4 @@
 import java.io.IOException;
 import java.net.URL;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
@@ -53,6 +52,5 @@
 
     private JCSCachedTileLoaderJob<?, ?> findJob() {
-        for (Iterator<Runnable> it = iterator(); it.hasNext();) {
-            Runnable r = it.next();
+        for (Runnable r : this) {
             if (r instanceof JCSCachedTileLoaderJob) {
                 JCSCachedTileLoaderJob<?, ?> job = (JCSCachedTileLoaderJob<?, ?>) r;
Index: trunk/src/org/openstreetmap/josm/data/projection/datum/NTV2GridShiftFile.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/projection/datum/NTV2GridShiftFile.java	(revision 17371)
+++ trunk/src/org/openstreetmap/josm/data/projection/datum/NTV2GridShiftFile.java	(revision 17374)
@@ -263,6 +263,6 @@
     private static NTV2SubGrid getSubGrid(NTV2SubGrid[] topLevelSubGrid, double lon, double lat) {
         NTV2SubGrid sub = null;
-        for (int i = 0; i < topLevelSubGrid.length; i++) {
-            sub = topLevelSubGrid[i].getSubGridForCoord(lon, lat);
+        for (NTV2SubGrid topLevel : topLevelSubGrid) {
+            sub = topLevel.getSubGridForCoord(lon, lat);
             if (sub != null) {
                 break;
@@ -274,28 +274,16 @@
     @Override
     public String toString() {
-        return new StringBuilder(256)
-            .append("Headers  : ")
-            .append(overviewHeaderCount)
-            .append("\nSub Hdrs : ")
-            .append(subGridHeaderCount)
-            .append("\nSub Grids: ")
-            .append(subGridCount)
-            .append("\nType     : ")
-            .append(shiftType)
-            .append("\nVersion  : ")
-            .append(version)
-            .append("\nFr Ellpsd: ")
-            .append(fromEllipsoid)
-            .append("\nTo Ellpsd: ")
-            .append(toEllipsoid)
-            .append("\nFr Maj Ax: ")
-            .append(fromSemiMajorAxis)
-            .append("\nFr Min Ax: ")
-            .append(fromSemiMinorAxis)
-            .append("\nTo Maj Ax: ")
-            .append(toSemiMajorAxis)
-            .append("\nTo Min Ax: ")
-            .append(toSemiMinorAxis)
-            .toString();
+        char endl = '\n';
+        return "Headers  : " + overviewHeaderCount + endl +
+                "Sub Hdrs : " + subGridHeaderCount + endl +
+                "Sub Grids: " + subGridCount + endl +
+                "Type     : " + shiftType + endl +
+                "Version  : " + version + endl +
+                "Fr Ellpsd: " + fromEllipsoid + endl +
+                "To Ellpsd: " + toEllipsoid + endl +
+                "Fr Maj Ax: " + fromSemiMajorAxis + endl +
+                "Fr Min Ax: " + fromSemiMinorAxis + endl +
+                "To Maj Ax: " + toSemiMajorAxis + endl +
+                "To Min Ax: " + toSemiMinorAxis;
     }
 
Index: trunk/src/org/openstreetmap/josm/data/validation/routines/UrlValidator.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/routines/UrlValidator.java	(revision 17371)
+++ trunk/src/org/openstreetmap/josm/data/validation/routines/UrlValidator.java	(revision 17374)
@@ -276,6 +276,6 @@
             }
             allowedSchemes = new HashSet<>(schemes.length);
-            for (int i = 0; i < schemes.length; i++) {
-                allowedSchemes.add(schemes[i].toLowerCase(Locale.ENGLISH));
+            for (String scheme : schemes) {
+                allowedSchemes.add(scheme.toLowerCase(Locale.ENGLISH));
             }
         }
Index: trunk/src/org/openstreetmap/josm/data/validation/tests/ConnectivityRelations.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/ConnectivityRelations.java	(revision 17371)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/ConnectivityRelations.java	(revision 17374)
@@ -80,9 +80,8 @@
         final String joined = cnTag.replace("bw", Integer.toString(BW));
 
-
         final Map<Integer, Map<Integer, Boolean>> result = new HashMap<>();
         String[] lanes = joined.split("\\|", -1);
         for (int i = 0; i < lanes.length; i++) {
-            String[] lane = lanes[i].split(":", -1);
+            final String[] lane = lanes[i].split(":", -1);
             int laneNumber;
             //Ignore connections from bw, since we cannot derive a lane number from bw
Index: trunk/src/org/openstreetmap/josm/data/validation/tests/DuplicateNode.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/DuplicateNode.java	(revision 17371)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/DuplicateNode.java	(revision 17374)
@@ -156,5 +156,5 @@
      * Returns the list of "duplicate nodes" errors for the given selection of node and parent test
      * @param parentTest The parent test of returned errors
-     * @param nodes The nodes selction to look into
+     * @param nodes The nodes selection to look into
      * @return the list of "duplicate nodes" errors
      */
@@ -187,6 +187,5 @@
                                 Way w = (Way) sp;
                                 Map<String, String> keys = w.getKeys();
-                                for (Iterator<Entry<String, Boolean>> itt = typeMap.entrySet().iterator(); itt.hasNext();) {
-                                    Entry<String, Boolean> e = itt.next();
+                                for (Entry<String, Boolean> e : typeMap.entrySet()) {
                                     if (keys.containsKey(e.getKey())) {
                                         e.setValue(Boolean.TRUE);
Index: trunk/src/org/openstreetmap/josm/data/validation/tests/SimilarNamedWays.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/SimilarNamedWays.java	(revision 17371)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/SimilarNamedWays.java	(revision 17374)
@@ -220,12 +220,12 @@
             StringBuilder expression = new StringBuilder();
             int maxLength = 0;
-            for (int i = 0; i < words.length; i++) {
-                if (words[i].length() > maxLength) {
-                    maxLength = words[i].length();
+            for (String word : words) {
+                if (word.length() > maxLength) {
+                    maxLength = word.length();
                 }
                 if (expression.length() > 0) {
                     expression.append('|');
                 }
-                expression.append(Pattern.quote(words[i]));
+                expression.append(Pattern.quote(word));
             }
             this.regExpr = Pattern.compile(expression.toString(), CASE_INSENSITIVE + UNICODE_CASE);
@@ -243,6 +243,5 @@
             // which word matches?
             String part = "";
-            for (int i = 0; i < words.length; i++) {
-                String word = words[i];
+            for (String word : words) {
                 if (start + word.length() <= name.length()) {
                     part = name.substring(start, start + word.length());
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java	(revision 17371)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java	(revision 17374)
@@ -277,6 +277,6 @@
         List<Command> undoCommands = UndoRedoHandler.getInstance().getUndoCommands();
         undoRoot = new DefaultMutableTreeNode();
-        for (int i = 0; i < undoCommands.size(); ++i) {
-            undoRoot.add(getNodeForCommand(undoCommands.get(i)));
+        for (Command undoCommand : undoCommands) {
+            undoRoot.add(getNodeForCommand(undoCommand));
         }
         undoTreeModel.setRoot(undoRoot);
@@ -286,6 +286,6 @@
         List<Command> redoCommands = UndoRedoHandler.getInstance().getRedoCommands();
         redoRoot = new DefaultMutableTreeNode();
-        for (int i = 0; i < redoCommands.size(); ++i) {
-            redoRoot.add(getNodeForCommand(redoCommands.get(i)));
+        for (Command redoCommand : redoCommands) {
+            redoRoot.add(getNodeForCommand(redoCommand));
         }
         redoTreeModel.setRoot(redoRoot);
@@ -341,6 +341,6 @@
         if (c.getChildren() != null) {
             List<PseudoCommand> children = new ArrayList<>(c.getChildren());
-            for (int i = 0; i < children.size(); ++i) {
-                node.add(getNodeForCommand(children.get(i)));
+            for (PseudoCommand child : children) {
+                node.add(getNodeForCommand(child));
             }
         }
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/DialogsPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/DialogsPanel.java	(revision 17371)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/DialogsPanel.java	(revision 17374)
@@ -194,6 +194,5 @@
          */
         if (action == Action.RESTORE_SAVED || action == Action.ELEMENT_SHRINKS) {
-            for (int i = 0; i < n; ++i) {
-                final ToggleDialog dlg = allDialogs.get(i);
+            for (final ToggleDialog dlg : allDialogs) {
                 if (dlg.isDialogInDefaultView()) {
                     final int ph = action == Action.RESTORE_SAVED ? dlg.getLastHeight() : dlg.getPreferredHeight();
@@ -251,6 +250,5 @@
             int dm = 0;        // additional space needed by the small dialogs
             int dp = 0;        // available space from the large dialogs
-            for (int i = 0; i < n; ++i) {
-                final ToggleDialog dlg = allDialogs.get(i);
+            for (final ToggleDialog dlg : allDialogs) {
                 if (dlg != triggeredBy && dlg.isDialogInDefaultView()) {
                     final int ha = dlg.getSize().height;                              // current
@@ -266,6 +264,5 @@
             }
             /** adjust, without changing the sum */
-            for (int i = 0; i < n; ++i) {
-                final ToggleDialog dlg = allDialogs.get(i);
+            for (final ToggleDialog dlg : allDialogs) {
                 if (dlg != triggeredBy && dlg.isDialogInDefaultView()) {
                     final int ha = dlg.getHeight();
@@ -276,5 +273,5 @@
                         dlg.setPreferredSize(new Dimension(Integer.MAX_VALUE, hn));
                     } else {
-                        int d = dp == 0 ? 0 : ((h0-he) * dm / dp);
+                        int d = dp == 0 ? 0 : ((h0 - he) * dm / dp);
                         dlg.setPreferredSize(new Dimension(Integer.MAX_VALUE, h0 - d));
                     }
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/styleelement/placement/CompletelyInsideAreaStrategy.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/styleelement/placement/CompletelyInsideAreaStrategy.java	(revision 17371)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/styleelement/placement/CompletelyInsideAreaStrategy.java	(revision 17374)
@@ -40,5 +40,5 @@
         // Centroids are not optimal either, just imagine a U-shaped house.
 
-        Rectangle pb = path.getBounds();
+        final Rectangle pb = path.getBounds();
 
         // quick check to see if label box is smaller than primitive box
@@ -56,5 +56,5 @@
         final int nbh = (int) nb.getHeight();
 
-        Rectangle centeredNBounds = new Rectangle(x2, y2, nbw, nbh);
+        final Rectangle centeredNBounds = new Rectangle(x2, y2, nbw, nbh);
 
         // slower check to see if label is displayed inside primitive shape
@@ -85,8 +85,7 @@
         // Dumb algorithm to find a better placement. We could surely find a smarter one but it should
         // solve most of building issues with only few calculations (8 at most)
-        for (int i = 0; i < candidates.length; i++) {
-            centeredNBounds = candidates[i];
-            if (path.contains(centeredNBounds)) {
-                return centerOf(path.getMapViewState(), centeredNBounds);
+        for (Rectangle candidate : candidates) {
+            if (path.contains(candidate)) {
+                return centerOf(path.getMapViewState(), candidate);
             }
         }
Index: trunk/src/org/openstreetmap/josm/tools/ListenerList.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/ListenerList.java	(revision 17371)
+++ trunk/src/org/openstreetmap/josm/tools/ListenerList.java	(revision 17374)
@@ -5,5 +5,4 @@
 import java.text.MessageFormat;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.Objects;
 import java.util.concurrent.CopyOnWriteArrayList;
@@ -156,6 +155,5 @@
             eventFirerer.fire(l);
         }
-        for (Iterator<WeakListener<T>> iterator = weakListeners.iterator(); iterator.hasNext();) {
-            WeakListener<T> weakLink = iterator.next();
+        for (WeakListener<T> weakLink : weakListeners) {
             T l = weakLink.listener.get();
             if (l != null) {
Index: trunk/src/org/openstreetmap/josm/tools/Utils.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/Utils.java	(revision 17371)
+++ trunk/src/org/openstreetmap/josm/tools/Utils.java	(revision 17374)
@@ -1510,7 +1510,7 @@
         }
         Bidi.reorderVisually(levels, 0, dirStrings, 0, levels.length);
-        for (int i = 0; i < dirStrings.length; ++i) {
-            char[] chars = dirStrings[i].str.toCharArray();
-            gvs.add(font.layoutGlyphVector(frc, chars, 0, chars.length, dirStrings[i].direction));
+        for (DirectionString dirString : dirStrings) {
+            char[] chars = dirString.str.toCharArray();
+            gvs.add(font.layoutGlyphVector(frc, chars, 0, chars.length, dirString.direction));
         }
         return gvs;
