Index: trunk/src/org/openstreetmap/josm/data/preferences/sources/MapPaintPrefHelper.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/preferences/sources/MapPaintPrefHelper.java	(revision 15718)
+++ trunk/src/org/openstreetmap/josm/data/preferences/sources/MapPaintPrefHelper.java	(revision 15719)
@@ -74,5 +74,8 @@
 
         // XML style is not bundled anymore
-        list.remove(Utils.find(list, se -> "resource://styles/standard/elemstyles.xml".equals(se.url)));
+        list.stream()
+                .filter(se -> "resource://styles/standard/elemstyles.xml".equals(se.url))
+                .findFirst()
+                .ifPresent(list::remove);
 
         return changed;
Index: trunk/src/org/openstreetmap/josm/data/validation/tests/RelationChecker.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/RelationChecker.java	(revision 15718)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/RelationChecker.java	(revision 15719)
@@ -34,4 +34,5 @@
 import org.openstreetmap.josm.gui.tagging.presets.items.Roles;
 import org.openstreetmap.josm.gui.tagging.presets.items.Roles.Role;
+import org.openstreetmap.josm.tools.SubclassFilteredCollection;
 import org.openstreetmap.josm.tools.Utils;
 
@@ -173,7 +174,7 @@
         for (TaggingPreset p : relationpresets) {
             final boolean matches = TaggingPresetItem.matches(Utils.filteredCollection(p.data, KeyedItem.class), n.getKeys());
-            final Roles r = Utils.find(p.data, Roles.class);
-            if (matches && r != null) {
-                for (Role role: r.roles) {
+            final SubclassFilteredCollection<TaggingPresetItem, Roles> roles = Utils.filteredCollection(p.data, Roles.class);
+            if (matches && !roles.isEmpty()) {
+                for (Role role: roles.iterator().next().roles) {
                     allroles.put(role, p.name);
                 }
Index: trunk/src/org/openstreetmap/josm/gui/SplashScreen.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/SplashScreen.java	(revision 15718)
+++ trunk/src/org/openstreetmap/josm/gui/SplashScreen.java	(revision 15719)
@@ -15,4 +15,5 @@
 import java.util.List;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.concurrent.CopyOnWriteArrayList;
 
@@ -292,6 +293,9 @@
          */
         public void finishTask(String title) {
-            final Task task = Utils.find(tasks, new MeasurableTask(title)::equals);
-            if (task instanceof MeasurableTask) {
+            Optional<Task> taskOptional = tasks.stream()
+                    .filter(new MeasurableTask(title)::equals)
+                    .filter(MeasurableTask.class::isInstance)
+                    .findAny();
+            taskOptional.ifPresent(task -> {
                 ((MeasurableTask) task).finish();
                 if (Logging.isDebugEnabled()) {
@@ -299,5 +303,5 @@
                 }
                 listener.stateChanged(null);
-            }
+            });
         }
 
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java	(revision 15718)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java	(revision 15719)
@@ -41,5 +41,4 @@
 import org.openstreetmap.josm.spi.preferences.PreferenceChangedListener;
 import org.openstreetmap.josm.tools.Pair;
-import org.openstreetmap.josm.tools.Utils;
 
 /**
@@ -194,6 +193,11 @@
             }
             if (!hasProperLineStyle) {
-                AreaElement area = Utils.find(p.a, AreaElement.class);
-                LineElement line = area == null ? LineElement.UNTAGGED_WAY : LineElement.createSimpleLineStyle(area.color, true);
+                LineElement line = LineElement.UNTAGGED_WAY;
+                for (StyleElement element : p.a) {
+                    if (element instanceof AreaElement) {
+                        line = LineElement.createSimpleLineStyle(((AreaElement) element).color, true);
+                        break;
+                    }
+                }
                 p.a = new StyleElementList(p.a, line);
             }
@@ -288,7 +292,9 @@
                             break;
                         } else if (wayColor == null && isDefaultLines()) {
-                            AreaElement mpArea = Utils.find(mpElemStyles.a, AreaElement.class);
-                            if (mpArea != null) {
-                                wayColor = mpArea.color;
+                            for (StyleElement element : mpElemStyles.a) {
+                                if (element instanceof AreaElement) {
+                                    wayColor = ((AreaElement) element).color;
+                                    break;
+                                }
                             }
                         }
Index: trunk/src/org/openstreetmap/josm/tools/Utils.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/Utils.java	(revision 15718)
+++ trunk/src/org/openstreetmap/josm/tools/Utils.java	(revision 15719)
@@ -108,5 +108,7 @@
      * @param clazz The class to search for.
      * @return <code>true</code> if that item exists in the collection.
-     */
+     * @deprecated use {@link Stream#anyMatch}
+     */
+    @Deprecated
     public static <T> boolean exists(Iterable<T> collection, Class<? extends T> clazz) {
         CheckParameterUtil.ensureParameterNotNull(clazz, "clazz");
@@ -120,5 +122,7 @@
      * @param predicate The predicate to match
      * @return the item or <code>null</code> if there was not match.
-     */
+     * @deprecated use {@link Stream#filter} and {@link Stream#findFirst}
+     */
+    @Deprecated
     public static <T> T find(Iterable<? extends T> collection, Predicate<? super T> predicate) {
         for (T item : collection) {
@@ -136,5 +140,7 @@
      * @param clazz The class to search for.
      * @return the item or <code>null</code> if there was not match.
-     */
+     * @deprecated use {@link Stream#filter} and {@link Stream#findFirst}
+     */
+    @Deprecated
     @SuppressWarnings("unchecked")
     public static <T> T find(Iterable<? extends Object> collection, Class<? extends T> clazz) {
