下面列出了java.util.Spliterators#iterator ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
public Iterator<Object> iterator() {
if (delegate instanceof Iterable) {
return ((Iterable) delegate).iterator();
} else if (delegate.getClass().isArray()) {
// This is not very effective
int length = Array.getLength(delegate);
List<Object> elements = new ArrayList<>(length);
for (int i = 0; i < length; i++) {
elements.add(Array.get(delegate, i));
}
return elements.iterator();
} else if (delegate instanceof Iterator) {
return (Iterator) delegate;
} else if (delegate instanceof Spliterator) {
return Spliterators.iterator((Spliterator<?>) delegate);
} else if (delegate instanceof Stream) {
return ((Stream) delegate).sequential().iterator();
} else {
throw new MustacheException(delegate + "is not iterable");
}
}
public void test_iterator_int() {
int[] data = new int[]{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 };
Spliterator.OfInt intSp = Spliterators.spliterator(data, 0);
PrimitiveIterator.OfInt it = Spliterators.iterator(intSp);
assertTrue(it.hasNext());
assertEquals(1, (int) it.next());
assertEquals(2, it.nextInt());
PrimitiveIntArrayList recorder = new PrimitiveIntArrayList(16);
recorder.add(1);
recorder.add(2);
it.forEachRemaining((Integer l) -> recorder.add(l));
assertEquals(Arrays.toString(data), Arrays.toString(recorder.toSortedArray()));
assertFalse(it.hasNext());
}
@Override
public PrimitiveIterator.OfLong iterator() {
return Spliterators.iterator(spliterator());
}
@Override
public PrimitiveIterator.OfLong iterator() {
return Spliterators.iterator(spliterator());
}
@Override
public final PrimitiveIterator.OfDouble iterator() {
return Spliterators.iterator(spliterator());
}
@Override
public final PrimitiveIterator.OfLong iterator() {
return Spliterators.iterator(spliterator());
}
@Override
public PrimitiveIterator.OfDouble iterator() {
return Spliterators.iterator(spliterator());
}
@Override
default Iterator<T> iterator() {
return Spliterators.iterator(spliterator());
}
@Override
public PrimitiveIterator.OfLong iterator() {
return Spliterators.iterator(spliterator());
}
@Override
public PrimitiveIterator.OfLong iterator() {
return Spliterators.iterator(spliterator());
}
@Override
public final Iterator<P_OUT> iterator() {
return Spliterators.iterator(spliterator());
}
@Override
public final PrimitiveIterator.OfInt iterator() {
return Spliterators.iterator(spliterator());
}
@Override
public final PrimitiveIterator.OfDouble iterator() {
return Spliterators.iterator(spliterator());
}
@Override
public Iterator<E> iterator() {
return Spliterators.iterator(spliterator());
}
@Override
default Iterator<T> iterator() {
return Spliterators.iterator(spliterator());
}
@Override
public PrimitiveIterator.OfLong iterator() {
return Spliterators.iterator(spliterator());
}
@Override
public final Iterator<P_OUT> iterator() {
return Spliterators.iterator(spliterator());
}
@Override
public Iterator<E> iterator() {
return Spliterators.iterator(spliterator());
}
@Override
public final PrimitiveIterator.OfInt iterator() {
return Spliterators.iterator(spliterator());
}
@Override
public Iterator<E> iterator() {
return Spliterators.iterator(spliterator());
}