Index: /trunk/src/org/openstreetmap/josm/Main.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/Main.java	(revision 11338)
+++ /trunk/src/org/openstreetmap/josm/Main.java	(revision 11339)
@@ -1092,13 +1092,7 @@
         if (listener == null) return;
         synchronized (Main.class) {
-            Iterator<WeakReference<ProjectionChangeListener>> it = listeners.iterator();
-            while (it.hasNext()) {
-                WeakReference<ProjectionChangeListener> wr = it.next();
-                // remove the listener - and any other listener which got garbage
-                // collected in the meantime
-                if (wr.get() == null || wr.get() == listener) {
-                    it.remove();
-                }
-            }
+            // remove the listener - and any other listener which got garbage
+            // collected in the meantime
+            listeners.removeIf(wr -> wr.get() == null || wr.get() == listener);
         }
     }
@@ -1156,13 +1150,7 @@
         if (listener == null) return;
         synchronized (Main.class) {
-            Iterator<WeakReference<WindowSwitchListener>> it = windowSwitchListeners.iterator();
-            while (it.hasNext()) {
-                WeakReference<WindowSwitchListener> wr = it.next();
-                // remove the listener - and any other listener which got garbage
-                // collected in the meantime
-                if (wr.get() == null || wr.get() == listener) {
-                    it.remove();
-                }
-            }
+            // remove the listener - and any other listener which got garbage
+            // collected in the meantime
+            windowSwitchListeners.removeIf(wr -> wr.get() == null || wr.get() == listener);
             if (windowSwitchListeners.isEmpty()) {
                 MasterWindowListener.teardown();
Index: /trunk/src/org/openstreetmap/josm/actions/AbstractInfoAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/AbstractInfoAction.java	(revision 11338)
+++ /trunk/src/org/openstreetmap/josm/actions/AbstractInfoAction.java	(revision 11339)
@@ -8,5 +8,4 @@
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Iterator;
 import java.util.List;
 
@@ -15,4 +14,5 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.notes.Note;
+import org.openstreetmap.josm.data.osm.AbstractPrimitive;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
@@ -109,10 +109,5 @@
         // filter out new primitives which are not yet uploaded to the server
         //
-        Iterator<OsmPrimitive> it = primitivesToShow.iterator();
-        while (it.hasNext()) {
-            if (it.next().isNew()) {
-                it.remove();
-            }
-        }
+        primitivesToShow.removeIf(AbstractPrimitive::isNew);
 
         if (primitivesToShow.isEmpty() && noteToShow == null) {
Index: /trunk/src/org/openstreetmap/josm/actions/UnJoinNodeWayAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/UnJoinNodeWayAction.java	(revision 11338)
+++ /trunk/src/org/openstreetmap/josm/actions/UnJoinNodeWayAction.java	(revision 11339)
@@ -10,5 +10,4 @@
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
@@ -156,17 +155,9 @@
         for (int i = 1; i < selectedNodes.size(); i++) {
             List<OsmPrimitive> ref = selectedNodes.get(i).getReferrers();
-            for (Iterator<Way> it = result.iterator(); it.hasNext();) {
-                if (!ref.contains(it.next())) {
-                    it.remove();
-                }
-            }
+            result.removeIf(way -> !ref.contains(way));
         }
 
         // Remove broken ways
-        for (Iterator<Way> it = result.iterator(); it.hasNext();) {
-            if (it.next().getNodesCount() <= 2) {
-                it.remove();
-            }
-        }
+        result.removeIf(way -> way.getNodesCount() <= 2);
 
         if (selectedWays.isEmpty())
@@ -174,9 +165,5 @@
         else {
             // Return only selected ways
-            for (Iterator<Way> it = result.iterator(); it.hasNext();) {
-                if (!selectedWays.contains(it.next())) {
-                    it.remove();
-                }
-            }
+            result.removeIf(way -> !selectedWays.contains(way));
             return result;
         }
Index: /trunk/src/org/openstreetmap/josm/command/DeleteCommand.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/command/DeleteCommand.java	(revision 11338)
+++ /trunk/src/org/openstreetmap/josm/command/DeleteCommand.java	(revision 11339)
@@ -14,5 +14,4 @@
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
@@ -439,11 +438,5 @@
         if (!silent) {
             Set<RelationToChildReference> references = RelationToChildReference.getRelationToChildReferences(primitivesToDelete);
-            Iterator<RelationToChildReference> it = references.iterator();
-            while (it.hasNext()) {
-                RelationToChildReference ref = it.next();
-                if (ref.getParent().isDeleted()) {
-                    it.remove();
-                }
-            }
+            references.removeIf(ref -> ref.getParent().isDeleted());
             if (!references.isEmpty()) {
                 DeleteFromRelationConfirmationDialog dialog = DeleteFromRelationConfirmationDialog.getInstance();
Index: /trunk/src/org/openstreetmap/josm/data/CustomConfigurator.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/CustomConfigurator.java	(revision 11338)
+++ /trunk/src/org/openstreetmap/josm/data/CustomConfigurator.java	(revision 11339)
@@ -1088,11 +1088,5 @@
             }
         }
-        Iterator<Map.Entry<String, Setting<?>>> it = tmpPref.settingsMap.entrySet().iterator();
-        while (it.hasNext()) {
-            Map.Entry<String, Setting<?>> e = it.next();
-            if (e.getValue().getValue() == null) {
-                it.remove();
-            }
-        }
+        tmpPref.settingsMap.entrySet().removeIf(e -> e.getValue().getValue() == null);
 
         for (Map.Entry<String, Setting<?>> e: tmpPref.settingsMap.entrySet()) {
Index: /trunk/src/org/openstreetmap/josm/data/osm/TagCollection.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/TagCollection.java	(revision 11338)
+++ /trunk/src/org/openstreetmap/josm/data/osm/TagCollection.java	(revision 11339)
@@ -291,10 +291,5 @@
     public void removeByKey(String key) {
         if (key != null) {
-            Iterator<Tag> it = tags.keySet().iterator();
-            while (it.hasNext()) {
-                if (it.next().matchesKey(key)) {
-                    it.remove();
-                }
-            }
+            tags.keySet().removeIf(tag -> tag.matchesKey(key));
         }
     }
Index: /trunk/src/org/openstreetmap/josm/data/validation/tests/Addresses.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/validation/tests/Addresses.java	(revision 11338)
+++ /trunk/src/org/openstreetmap/josm/data/validation/tests/Addresses.java	(revision 11339)
@@ -9,5 +9,4 @@
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
@@ -59,10 +58,5 @@
     protected List<Relation> getAndCheckAssociatedStreets(OsmPrimitive p) {
         List<Relation> list = OsmPrimitive.getFilteredList(p.getReferrers(), Relation.class);
-        for (Iterator<Relation> it = list.iterator(); it.hasNext();) {
-            Relation r = it.next();
-            if (!r.hasTag("type", ASSOCIATED_STREET)) {
-                it.remove();
-            }
-        }
+        list.removeIf(r -> !r.hasTag("type", ASSOCIATED_STREET));
         if (list.size() > 1) {
             Severity level;
Index: /trunk/src/org/openstreetmap/josm/data/validation/tests/DuplicateNode.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/validation/tests/DuplicateNode.java	(revision 11338)
+++ /trunk/src/org/openstreetmap/josm/data/validation/tests/DuplicateNode.java	(revision 11339)
@@ -21,4 +21,5 @@
 import org.openstreetmap.josm.command.Command;
 import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.AbstractPrimitive;
 import org.openstreetmap.josm.data.osm.Hash;
 import org.openstreetmap.josm.data.osm.Node;
@@ -315,9 +316,5 @@
 
         // Filter nodes that have already been deleted (see #5764 and #5773)
-        for (Iterator<Node> it = nodes.iterator(); it.hasNext();) {
-            if (it.next().isDeleted()) {
-                it.remove();
-            }
-        }
+        nodes.removeIf(AbstractPrimitive::isDeleted);
 
         // Merge only if at least 2 nodes remain
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/RecentTagCollection.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/RecentTagCollection.java	(revision 11338)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/RecentTagCollection.java	(revision 11339)
@@ -64,10 +64,5 @@
     public void setTagsToIgnore(SearchCompiler.Match tagsToIgnore) {
         this.tagsToIgnore = tagsToIgnore;
-        final Iterator<Tag> it = recentTags.keySet().iterator();
-        while (it.hasNext()) {
-            if (tagsToIgnore.match(it.next())) {
-                it.remove();
-            }
-        }
+        recentTags.keySet().removeIf(tagsToIgnore::match);
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java	(revision 11338)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java	(revision 11339)
@@ -33,5 +33,4 @@
 import java.util.Comparator;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -687,11 +686,5 @@
 
             // remove the object's tag keys from the list
-            Iterator<AutoCompletionListItem> iter = keyList.iterator();
-            while (iter.hasNext()) {
-                AutoCompletionListItem item = iter.next();
-                if (containsDataKey(item.getValue())) {
-                    iter.remove();
-                }
-            }
+            keyList.removeIf(item -> containsDataKey(item.getValue()));
 
             keyList.sort(defaultACItemComparator);
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java	(revision 11338)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java	(revision 11339)
@@ -9,5 +9,4 @@
 import java.util.EnumSet;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
@@ -349,11 +348,5 @@
         if (primitives == null)
             return;
-        Iterator<RelationMember> it = members.iterator();
-        while (it.hasNext()) {
-            RelationMember member = it.next();
-            if (primitives.contains(member.getMember())) {
-                it.remove();
-            }
-        }
+        members.removeIf(member -> primitives.contains(member.getMember()));
         fireTableDataChanged();
     }
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/plugin/PluginPreference.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/plugin/PluginPreference.java	(revision 11338)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/plugin/PluginPreference.java	(revision 11339)
@@ -20,5 +20,4 @@
 import java.util.Collection;
 import java.util.Collections;
-import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
@@ -430,11 +429,5 @@
                 // select plugins which actually have to be updated
                 //
-                Iterator<PluginInformation> it = toUpdate.iterator();
-                while (it.hasNext()) {
-                    PluginInformation pi = it.next();
-                    if (!pi.isUpdateRequired()) {
-                        it.remove();
-                    }
-                }
+                toUpdate.removeIf(pi -> !pi.isUpdateRequired());
                 if (toUpdate.isEmpty()) {
                     alertNothingToUpdate();
Index: /trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java	(revision 11338)
+++ /trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java	(revision 11339)
@@ -547,10 +547,5 @@
             // Build list of plugins to download
             Set<PluginInformation> toDownload = new HashSet<>(pluginInfoDownloadTask.getAvailablePlugins());
-            for (Iterator<PluginInformation> it = toDownload.iterator(); it.hasNext();) {
-                PluginInformation info = it.next();
-                if (!missingRequiredPlugin.contains(info.getName())) {
-                    it.remove();
-                }
-            }
+            toDownload.removeIf(info -> !missingRequiredPlugin.contains(info.getName()));
             // Check if something has still to be downloaded
             if (!toDownload.isEmpty()) {
