diff options
Diffstat (limited to 'core/java/android/util/ArraySet.java')
| -rw-r--r-- | core/java/android/util/ArraySet.java | 18 |
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]; |
