summaryrefslogtreecommitdiff
path: root/core/java/android/util/ArraySet.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/util/ArraySet.java')
-rw-r--r--core/java/android/util/ArraySet.java18
1 files changed, 18 insertions, 0 deletions
diff --git a/core/java/android/util/ArraySet.java b/core/java/android/util/ArraySet.java
index f53548a41177..b5c75b9276b7 100644
--- a/core/java/android/util/ArraySet.java
+++ b/core/java/android/util/ArraySet.java
@@ -28,6 +28,7 @@ import java.util.ConcurrentModificationException;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
+import java.util.function.Consumer;
import java.util.function.Predicate;
/**
@@ -747,6 +748,23 @@ public final class ArraySet<E> implements Collection<E>, Set<E> {
return mSize;
}
+ /**
+ * Performs the given action for all elements in the stored order. This implementation overrides
+ * the default implementation to avoid using the {@link #iterator()}.
+ *
+ * @param action The action to be performed for each element
+ */
+ @Override
+ public void forEach(Consumer<? super E> action) {
+ if (action == null) {
+ throw new NullPointerException("action must not be null");
+ }
+
+ for (int i = 0; i < mSize; ++i) {
+ action.accept(valueAt(i));
+ }
+ }
+
@Override
public Object[] toArray() {
Object[] result = new Object[mSize];