Index: trunk/src/org/openstreetmap/josm/data/preferences/ListListSetting.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/preferences/ListListSetting.java	(revision 11393)
+++ trunk/src/org/openstreetmap/josm/data/preferences/ListListSetting.java	(revision 11394)
@@ -5,8 +5,5 @@
 import java.util.Collection;
 import java.util.Collections;
-import java.util.Iterator;
 import java.util.List;
-
-import org.openstreetmap.josm.tools.Utils;
 
 /**
@@ -39,21 +36,4 @@
         }
         return new ListListSetting(null);
-    }
-
-    @Override
-    public boolean equalVal(List<List<String>> otherVal) {
-        if (value == null)
-            return otherVal == null;
-        if (otherVal == null)
-            return false;
-        if (value.size() != otherVal.size())
-            return false;
-        Iterator<List<String>> itA = value.iterator();
-        Iterator<List<String>> itB = otherVal.iterator();
-        while (itA.hasNext()) {
-            if (!Utils.equalCollection(itA.next(), itB.next()))
-                return false;
-        }
-        return true;
     }
 
@@ -92,10 +72,3 @@
         return new ListListSetting(null);
     }
-
-    @Override
-    public boolean equals(Object other) {
-        if (!(other instanceof ListListSetting))
-            return false;
-        return equalVal(((ListListSetting) other).getValue());
-    }
 }
Index: trunk/src/org/openstreetmap/josm/data/preferences/ListSetting.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/preferences/ListSetting.java	(revision 11393)
+++ trunk/src/org/openstreetmap/josm/data/preferences/ListSetting.java	(revision 11394)
@@ -6,6 +6,4 @@
 import java.util.Collections;
 import java.util.List;
-
-import org.openstreetmap.josm.tools.Utils;
 
 /**
@@ -33,9 +31,4 @@
 
     @Override
-    public boolean equalVal(List<String> otherVal) {
-        return Utils.equalCollection(value, otherVal);
-    }
-
-    @Override
     public ListSetting copy() {
         return ListSetting.create(value);
@@ -56,10 +49,3 @@
         return new ListSetting(null);
     }
-
-    @Override
-    public boolean equals(Object other) {
-        if (!(other instanceof ListSetting))
-            return false;
-        return equalVal(((ListSetting) other).getValue());
-    }
 }
Index: trunk/src/org/openstreetmap/josm/data/preferences/MapListSetting.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/preferences/MapListSetting.java	(revision 11393)
+++ trunk/src/org/openstreetmap/josm/data/preferences/MapListSetting.java	(revision 11394)
@@ -4,10 +4,7 @@
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Objects;
 
 /**
@@ -24,35 +21,4 @@
         super(value);
         consistencyTest();
-    }
-
-    @Override
-    public boolean equalVal(List<Map<String, String>> otherVal) {
-        if (value == null)
-            return otherVal == null;
-        if (otherVal == null)
-            return false;
-        if (value.size() != otherVal.size())
-            return false;
-        Iterator<Map<String, String>> itA = value.iterator();
-        Iterator<Map<String, String>> itB = otherVal.iterator();
-        while (itA.hasNext()) {
-            if (!equalMap(itA.next(), itB.next()))
-                return false;
-        }
-        return true;
-    }
-
-    private static boolean equalMap(Map<String, String> a, Map<String, String> b) {
-        if (a == null)
-            return b == null;
-        if (b == null)
-            return false;
-        if (a.size() != b.size())
-            return false;
-        for (Entry<String, String> e : a.entrySet()) {
-            if (!Objects.equals(e.getValue(), b.get(e.getKey())))
-                return false;
-        }
-        return true;
     }
 
@@ -91,10 +57,3 @@
         return new MapListSetting(null);
     }
-
-    @Override
-    public boolean equals(Object other) {
-        if (!(other instanceof MapListSetting))
-            return false;
-        return equalVal(((MapListSetting) other).getValue());
-    }
 }
Index: trunk/src/org/openstreetmap/josm/data/preferences/Setting.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/preferences/Setting.java	(revision 11393)
+++ trunk/src/org/openstreetmap/josm/data/preferences/Setting.java	(revision 11394)
@@ -25,5 +25,7 @@
      * @return true if the values are equal
      */
-    boolean equalVal(T otherVal);
+    default boolean equalVal(T otherVal) {
+        return getValue() == null ? (otherVal == null) : getValue().equals(otherVal);
+    }
 
     /**
Index: trunk/src/org/openstreetmap/josm/data/preferences/StringSetting.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/preferences/StringSetting.java	(revision 11393)
+++ trunk/src/org/openstreetmap/josm/data/preferences/StringSetting.java	(revision 11394)
@@ -16,11 +16,4 @@
 
     @Override
-    public boolean equalVal(String otherVal) {
-        if (value == null)
-            return otherVal == null;
-        return value.equals(otherVal);
-    }
-
-    @Override
     public StringSetting copy() {
         return new StringSetting(value);
@@ -36,10 +29,3 @@
         return new StringSetting(null);
     }
-
-    @Override
-    public boolean equals(Object other) {
-        if (!(other instanceof StringSetting))
-            return false;
-        return equalVal(((StringSetting) other).getValue());
-    }
 }
Index: trunk/src/org/openstreetmap/josm/tools/Utils.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/Utils.java	(revision 11393)
+++ trunk/src/org/openstreetmap/josm/tools/Utils.java	(revision 11394)
@@ -42,5 +42,4 @@
 import java.util.List;
 import java.util.Locale;
-import java.util.Objects;
 import java.util.concurrent.Executor;
 import java.util.concurrent.ForkJoinPool;
@@ -524,24 +523,4 @@
     public static boolean equalsEpsilon(double a, double b) {
         return Math.abs(a - b) <= EPSILON;
-    }
-
-    /**
-     * Determines if two collections are equal.
-     * @param a first collection
-     * @param b second collection
-     * @return {@code true} if collections are equal, {@code false} otherwise
-     * @since 9217
-     */
-    public static boolean equalCollection(Collection<?> a, Collection<?> b) {
-        if (a == null) return b == null;
-        if (b == null) return false;
-        if (a.size() != b.size()) return false;
-        Iterator<?> itA = a.iterator();
-        Iterator<?> itB = b.iterator();
-        while (itA.hasNext()) {
-            if (!Objects.equals(itA.next(), itB.next()))
-                return false;
-        }
-        return true;
     }
 
