diff options
Diffstat (limited to 'src/com/android/launcher3/util/IntArray.java')
-rw-r--r-- | src/com/android/launcher3/util/IntArray.java | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/src/com/android/launcher3/util/IntArray.java b/src/com/android/launcher3/util/IntArray.java index 7252f7ac1d..1c787959e4 100644 --- a/src/com/android/launcher3/util/IntArray.java +++ b/src/com/android/launcher3/util/IntArray.java @@ -17,13 +17,14 @@ package com.android.launcher3.util; import java.util.Arrays; +import java.util.Iterator; import java.util.StringTokenizer; /** * Copy of the platform hidden implementation of android.util.IntArray. * Implements a growing array of int primitives. */ -public class IntArray implements Cloneable { +public class IntArray implements Cloneable, Iterable<Integer> { private static final int MIN_CAPACITY_INCREMENT = 12; private static final int[] EMPTY_INT = new int[0]; @@ -272,4 +273,30 @@ public class IntArray implements Cloneable { throw new ArrayIndexOutOfBoundsException("length=" + len + "; index=" + index); } } + + @Override + public Iterator<Integer> iterator() { + return new ValueIterator(); + } + + @Thunk + class ValueIterator implements Iterator<Integer> { + + private int mNextIndex = 0; + + @Override + public boolean hasNext() { + return mNextIndex < size(); + } + + @Override + public Integer next() { + return get(mNextIndex++); + } + + @Override + public void remove() { + removeIndex(--mNextIndex); + } + } }
\ No newline at end of file |