jimu-decompiled/sources/com/squareup/haha/guava/collect/Iterators.java
2025-05-13 19:24:51 +02:00

185 lines
6.2 KiB
Java

package com.squareup.haha.guava.collect;
import com.squareup.haha.guava.base.Function;
import com.squareup.haha.guava.base.Joiner;
import com.squareup.haha.guava.base.Predicate;
import com.squareup.haha.guava.base.Predicates;
import java.util.Collection;
import java.util.Iterator;
import java.util.NoSuchElementException;
/* loaded from: classes.dex */
public final class Iterators {
private static UnmodifiableListIterator<Object> EMPTY_LIST_ITERATOR = new UnmodifiableListIterator<Object>() { // from class: com.squareup.haha.guava.collect.Iterators.1
@Override // java.util.Iterator, java.util.ListIterator
public final boolean hasNext() {
return false;
}
@Override // java.util.ListIterator
public final boolean hasPrevious() {
return false;
}
@Override // java.util.Iterator, java.util.ListIterator
public final Object next() {
throw new NoSuchElementException();
}
@Override // java.util.ListIterator
public final int nextIndex() {
return 0;
}
@Override // java.util.ListIterator
public final Object previous() {
throw new NoSuchElementException();
}
@Override // java.util.ListIterator
public final int previousIndex() {
return -1;
}
};
private static final Iterator<Object> EMPTY_MODIFIABLE_ITERATOR = new Iterator<Object>() { // from class: com.squareup.haha.guava.collect.Iterators.2
@Override // java.util.Iterator
public final boolean hasNext() {
return false;
}
@Override // java.util.Iterator
public final Object next() {
throw new NoSuchElementException();
}
@Override // java.util.Iterator
public final void remove() {
Joiner.checkRemove(false);
}
};
static void clear(Iterator<?> it) {
Joiner.checkNotNull(it);
while (it.hasNext()) {
it.next();
it.remove();
}
}
public static <T> Iterator<T> concat(final Iterator<? extends Iterator<? extends T>> it) {
Joiner.checkNotNull(it);
return new Iterator<T>() { // from class: com.squareup.haha.guava.collect.Iterators.5
private Iterator<? extends T> current = Iterators.emptyIterator();
private Iterator<? extends T> removeFrom;
@Override // java.util.Iterator
public final boolean hasNext() {
boolean hasNext;
while (true) {
hasNext = ((Iterator) Joiner.checkNotNull(this.current)).hasNext();
if (hasNext || !it.hasNext()) {
break;
}
this.current = (Iterator) it.next();
}
return hasNext;
}
@Override // java.util.Iterator
public final T next() {
if (!hasNext()) {
throw new NoSuchElementException();
}
Iterator<? extends T> it2 = this.current;
this.removeFrom = it2;
return it2.next();
}
@Override // java.util.Iterator
public final void remove() {
Joiner.checkRemove(this.removeFrom != null);
this.removeFrom.remove();
this.removeFrom = null;
}
};
}
public static boolean elementsEqual(Iterator<?> it, Iterator<?> it2) {
while (it.hasNext()) {
if (!it2.hasNext() || !Joiner.equal(it.next(), it2.next())) {
return false;
}
}
return !it2.hasNext();
}
public static <T> UnmodifiableIterator<T> emptyIterator() {
return EMPTY_LIST_ITERATOR;
}
static <T> Iterator<T> emptyModifiableIterator() {
return (Iterator<T>) EMPTY_MODIFIABLE_ITERATOR;
}
static <T> UnmodifiableListIterator<T> forArray(final T[] tArr, final int i, int i2, int i3) {
Joiner.checkArgument(i2 >= 0);
Joiner.checkPositionIndexes(i, i + i2, tArr.length);
Joiner.checkPositionIndex(i3, i2);
return i2 == 0 ? (UnmodifiableListIterator<T>) EMPTY_LIST_ITERATOR : new AbstractIndexedListIterator<T>(i2, i3) { // from class: com.squareup.haha.guava.collect.Iterators.11
@Override // com.squareup.haha.guava.collect.AbstractIndexedListIterator
protected final T get(int i4) {
return (T) tArr[i + i4];
}
};
}
public static boolean removeAll(Iterator<?> it, Collection<?> collection) {
Predicate in = Predicates.in(collection);
Joiner.checkNotNull(in);
boolean z = false;
while (it.hasNext()) {
if (in.apply(it.next())) {
it.remove();
z = true;
}
}
return z;
}
public static <T> UnmodifiableIterator<T> singletonIterator(final T t) {
return new UnmodifiableIterator<T>() { // from class: com.squareup.haha.guava.collect.Iterators.12
private boolean done;
@Override // java.util.Iterator
public final boolean hasNext() {
return !this.done;
}
@Override // java.util.Iterator
public final T next() {
if (this.done) {
throw new NoSuchElementException();
}
this.done = true;
return (T) t;
}
};
}
public static String toString(Iterator<?> it) {
StringBuilder appendTo = Collections2.STANDARD_JOINER.appendTo(new StringBuilder("["), it);
appendTo.append(']');
return appendTo.toString();
}
public static <F, T> Iterator<T> transform(Iterator<F> it, final Function<? super F, ? extends T> function) {
Joiner.checkNotNull(function);
return new TransformedIterator<F, T>(it) { // from class: com.squareup.haha.guava.collect.Iterators.8
@Override // com.squareup.haha.guava.collect.TransformedIterator
final T transform(F f) {
return (T) function.apply(f);
}
};
}
}