jimu-decompiled/sources/com/google/common/collect/Lists.java
2025-05-13 19:24:51 +02:00

228 lines
7.2 KiB
Java

package com.google.common.collect;
import com.google.common.base.Function;
import com.google.common.base.Objects;
import com.google.common.base.Preconditions;
import com.google.common.primitives.Ints;
import java.io.Serializable;
import java.util.AbstractList;
import java.util.AbstractSequentialList;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.RandomAccess;
/* loaded from: classes.dex */
public final class Lists {
private static class TransformingRandomAccessList<F, T> extends AbstractList<T> implements RandomAccess, Serializable {
final List<F> a;
final Function<? super F, ? extends T> b;
TransformingRandomAccessList(List<F> list, Function<? super F, ? extends T> function) {
Preconditions.a(list);
this.a = list;
Preconditions.a(function);
this.b = function;
}
@Override // java.util.AbstractList, java.util.AbstractCollection, java.util.Collection, java.util.List
public void clear() {
this.a.clear();
}
@Override // java.util.AbstractList, java.util.List
public T get(int i) {
return this.b.apply(this.a.get(i));
}
@Override // java.util.AbstractCollection, java.util.Collection, java.util.List
public boolean isEmpty() {
return this.a.isEmpty();
}
@Override // java.util.AbstractList, java.util.AbstractCollection, java.util.Collection, java.lang.Iterable, java.util.List
public Iterator<T> iterator() {
return listIterator();
}
@Override // java.util.AbstractList, java.util.List
public ListIterator<T> listIterator(int i) {
return new TransformedListIterator<F, T>(this.a.listIterator(i)) { // from class: com.google.common.collect.Lists.TransformingRandomAccessList.1
@Override // com.google.common.collect.TransformedIterator
T a(F f) {
return TransformingRandomAccessList.this.b.apply(f);
}
};
}
@Override // java.util.AbstractList, java.util.List
public T remove(int i) {
return this.b.apply(this.a.remove(i));
}
@Override // java.util.AbstractCollection, java.util.Collection, java.util.List
public int size() {
return this.a.size();
}
}
private static class TransformingSequentialList<F, T> extends AbstractSequentialList<T> implements Serializable {
final List<F> a;
final Function<? super F, ? extends T> b;
TransformingSequentialList(List<F> list, Function<? super F, ? extends T> function) {
Preconditions.a(list);
this.a = list;
Preconditions.a(function);
this.b = function;
}
@Override // java.util.AbstractList, java.util.AbstractCollection, java.util.Collection, java.util.List
public void clear() {
this.a.clear();
}
@Override // java.util.AbstractSequentialList, java.util.AbstractList, java.util.List
public ListIterator<T> listIterator(int i) {
return new TransformedListIterator<F, T>(this.a.listIterator(i)) { // from class: com.google.common.collect.Lists.TransformingSequentialList.1
@Override // com.google.common.collect.TransformedIterator
T a(F f) {
return TransformingSequentialList.this.b.apply(f);
}
};
}
@Override // java.util.AbstractCollection, java.util.Collection, java.util.List
public int size() {
return this.a.size();
}
}
public static <E> ArrayList<E> a() {
return new ArrayList<>();
}
public static <E> ArrayList<E> b(int i) {
CollectPreconditions.a(i, "initialArraySize");
return new ArrayList<>(i);
}
public static <E> ArrayList<E> c(int i) {
return new ArrayList<>(a(i));
}
static int d(List<?> list, Object obj) {
if (list instanceof RandomAccess) {
return e(list, obj);
}
ListIterator<?> listIterator = list.listIterator(list.size());
while (listIterator.hasPrevious()) {
if (Objects.a(obj, listIterator.previous())) {
return listIterator.nextIndex();
}
}
return -1;
}
private static int e(List<?> list, Object obj) {
if (obj == null) {
for (int size = list.size() - 1; size >= 0; size--) {
if (list.get(size) == null) {
return size;
}
}
return -1;
}
for (int size2 = list.size() - 1; size2 >= 0; size2--) {
if (obj.equals(list.get(size2))) {
return size2;
}
}
return -1;
}
static int a(int i) {
CollectPreconditions.a(i, "arraySize");
return Ints.b(i + 5 + (i / 10));
}
private static int c(List<?> list, Object obj) {
int size = list.size();
int i = 0;
if (obj == null) {
while (i < size) {
if (list.get(i) == null) {
return i;
}
i++;
}
return -1;
}
while (i < size) {
if (obj.equals(list.get(i))) {
return i;
}
i++;
}
return -1;
}
static int b(List<?> list, Object obj) {
if (list instanceof RandomAccess) {
return c(list, obj);
}
ListIterator<?> listIterator = list.listIterator();
while (listIterator.hasNext()) {
if (Objects.a(obj, listIterator.next())) {
return listIterator.previousIndex();
}
}
return -1;
}
public static <E> ArrayList<E> a(Iterable<? extends E> iterable) {
Preconditions.a(iterable);
if (iterable instanceof Collection) {
return new ArrayList<>(Collections2.a(iterable));
}
return a(iterable.iterator());
}
public static <E> ArrayList<E> a(Iterator<? extends E> it) {
ArrayList<E> a = a();
Iterators.a(a, it);
return a;
}
public static <F, T> List<T> a(List<F> list, Function<? super F, ? extends T> function) {
return list instanceof RandomAccess ? new TransformingRandomAccessList(list, function) : new TransformingSequentialList(list, function);
}
static boolean a(List<?> list, Object obj) {
Preconditions.a(list);
if (obj == list) {
return true;
}
if (!(obj instanceof List)) {
return false;
}
List list2 = (List) obj;
int size = list.size();
if (size != list2.size()) {
return false;
}
if (!(list instanceof RandomAccess) || !(list2 instanceof RandomAccess)) {
return Iterators.a(list.iterator(), (Iterator<?>) list2.iterator());
}
for (int i = 0; i < size; i++) {
if (!Objects.a(list.get(i), list2.get(i))) {
return false;
}
}
return true;
}
}