Index: trunk/src/org/openstreetmap/josm/data/validation/Test.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/Test.java	(revision 16331)
+++ trunk/src/org/openstreetmap/josm/data/validation/Test.java	(revision 16332)
@@ -10,4 +10,5 @@
 import java.util.Optional;
 import java.util.function.Predicate;
+import java.util.stream.Collectors;
 
 import javax.swing.JCheckBox;
@@ -336,10 +337,7 @@
      */
     protected final Command deletePrimitivesIfNeeded(Collection<? extends OsmPrimitive> primitives) {
-        Collection<OsmPrimitive> primitivesToDelete = new ArrayList<>();
-        for (OsmPrimitive p : primitives) {
-            if (!p.isDeleted()) {
-                primitivesToDelete.add(p);
-            }
-        }
+        Collection<OsmPrimitive> primitivesToDelete = primitives.stream()
+                .filter(p -> !p.isDeleted())
+                .collect(Collectors.toList());
         if (!primitivesToDelete.isEmpty()) {
             return DeleteCommand.delete(primitivesToDelete);
Index: trunk/src/org/openstreetmap/josm/data/validation/tests/DuplicateNode.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/DuplicateNode.java	(revision 16331)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/DuplicateNode.java	(revision 16332)
@@ -320,14 +320,8 @@
         if (nodes.size() >= 2) {
             // Use first existing node or first node if all nodes are new
-            Node target = null;
-            for (Node n: nodes) {
-                if (!n.isNew()) {
-                    target = n;
-                    break;
-                }
-            }
-            if (target == null) {
-                target = nodes.iterator().next();
-            }
+            Node target = nodes.stream()
+                    .filter(n -> !n.isNew())
+                    .findFirst()
+                    .orElseGet(() -> nodes.iterator().next());
 
             if (Command.checkOutlyingOrIncompleteOperation(nodes, Collections.singleton(target)) == Command.IS_OK)
Index: trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java	(revision 16331)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java	(revision 16332)
@@ -217,14 +217,7 @@
             if (isKeyIgnored(key))
                 continue;
-            boolean allNumerical = true;
             Set<String> values = TaggingPresets.getPresetValues(key);
-            if (values.isEmpty())
-                allNumerical = false;
-            for (String val : values) {
-                if (!isNum(val)) {
-                    allNumerical = false;
-                    break;
-                }
-            }
+            boolean allNumerical = values != null && !values.isEmpty()
+                    && values.stream().allMatch(TagChecker::isNum);
             if (allNumerical) {
                 ignoreForLevenshtein.add(key);
@@ -394,11 +387,8 @@
     private static void initAdditionalPresetsValueData() {
         additionalPresetsValueData = new HashSet<>();
-        for (String a : AbstractPrimitive.getUninterestingKeys()) {
-            additionalPresetsValueData.add(a);
-        }
-        for (String a : Config.getPref().getList(ValidatorPrefHelper.PREFIX + ".knownkeys",
-                Arrays.asList("is_in", "int_ref", "fixme", "population"))) {
-            additionalPresetsValueData.add(a);
-        }
+        additionalPresetsValueData.addAll(AbstractPrimitive.getUninterestingKeys());
+        additionalPresetsValueData.addAll(Config.getPref().getList(
+                ValidatorPrefHelper.PREFIX + ".knownkeys",
+                Arrays.asList("is_in", "int_ref", "fixme", "population")));
     }
 
@@ -575,18 +565,7 @@
      */
     private static boolean isKeyIgnored(String key) {
-        if (ignoreDataEquals.contains(key)) {
-            return true;
-        }
-        for (String a : ignoreDataStartsWith) {
-            if (key.startsWith(a)) {
-                return true;
-            }
-        }
-        for (String a : ignoreDataEndsWith) {
-            if (key.endsWith(a)) {
-                return true;
-            }
-        }
-        return false;
+        return ignoreDataEquals.contains(key)
+                || ignoreDataStartsWith.stream().anyMatch(key::startsWith)
+                || ignoreDataEndsWith.stream().anyMatch(key::endsWith);
     }
 
@@ -605,9 +584,6 @@
             return true;
         if (!isTagInPresets(key, value)) {
-            for (Tag a : ignoreDataTag) {
-                if (key.equals(a.getKey()) && value.equals(a.getValue())) {
-                    return true;
-                }
-            }
+            return ignoreDataTag.stream()
+                    .anyMatch(a -> key.equals(a.getKey()) && value.equals(a.getValue()));
         }
         return false;
@@ -799,11 +775,6 @@
             fixedKey = isKeyInPresets(prettifiedKey) ? prettifiedKey : harmonizedKeys.get(prettifiedKey);
         }
-        if (fixedKey == null) {
-            for (Tag a : ignoreDataTag) {
-                if (a.getKey().equals(prettifiedKey)) {
-                    fixedKey = prettifiedKey;
-                    break;
-                }
-            }
+        if (fixedKey == null && ignoreDataTag.stream().anyMatch(a -> a.getKey().equals(prettifiedKey))) {
+            fixedKey = prettifiedKey;
         }
 
@@ -834,5 +805,5 @@
         if (harmonizedValue == null || harmonizedValue.isEmpty())
             return;
-        String fixedValue = null;
+        String fixedValue;
         List<Set<String>> sets = new ArrayList<>();
         Set<String> presetValues = getPresetValues(key);
@@ -842,10 +813,6 @@
         if (usedValues != null)
             sets.add(usedValues);
-        for (Set<String> possibleValues: sets) {
-            if (possibleValues.contains(harmonizedValue)) {
-                fixedValue = harmonizedValue;
-                break;
-            }
-        }
+        fixedValue = sets.stream().anyMatch(possibleValues -> possibleValues.contains(harmonizedValue))
+                ? harmonizedValue : null;
         if (fixedValue == null && !ignoreForLevenshtein.contains(key)) {
             int maxPresetValueLen = 0;
