package com.google.common.collect; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; import com.google.common.math.IntMath; import java.util.AbstractList; import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.ListIterator; import java.util.RandomAccess; /* JADX INFO: Access modifiers changed from: package-private */ /* loaded from: classes2.dex */ public final class CartesianList extends AbstractList> implements RandomAccess { private final transient ImmutableList> axes; private final transient int[] axesSizeProduct; /* JADX INFO: Access modifiers changed from: package-private */ public static List> create(List> list) { ImmutableList.Builder builder = new ImmutableList.Builder(list.size()); Iterator> it = list.iterator(); while (it.hasNext()) { ImmutableList copyOf = ImmutableList.copyOf((Collection) it.next()); if (copyOf.isEmpty()) { return ImmutableList.of(); } builder.add((ImmutableList.Builder) copyOf); } return new CartesianList(builder.build()); } /* JADX INFO: Access modifiers changed from: package-private */ public CartesianList(ImmutableList> immutableList) { this.axes = immutableList; int[] iArr = new int[immutableList.size() + 1]; iArr[immutableList.size()] = 1; try { for (int size = immutableList.size() - 1; size >= 0; size--) { iArr[size] = IntMath.checkedMultiply(iArr[size + 1], immutableList.get(size).size()); } this.axesSizeProduct = iArr; } catch (ArithmeticException unused) { throw new IllegalArgumentException("Cartesian product too large; must have size at most Integer.MAX_VALUE"); } } /* JADX INFO: Access modifiers changed from: private */ public int getAxisIndexForProductIndex(int i, int i2) { return (i / this.axesSizeProduct[i2 + 1]) % this.axes.get(i2).size(); } @Override // java.util.AbstractList, java.util.List public final int indexOf(Object obj) { if (!(obj instanceof List)) { return -1; } List list = (List) obj; if (list.size() != this.axes.size()) { return -1; } ListIterator listIterator = list.listIterator(); int i = 0; while (listIterator.hasNext()) { int nextIndex = listIterator.nextIndex(); int indexOf = this.axes.get(nextIndex).indexOf(listIterator.next()); if (indexOf == -1) { return -1; } i += indexOf * this.axesSizeProduct[nextIndex + 1]; } return i; } @Override // java.util.AbstractList, java.util.List public final int lastIndexOf(Object obj) { if (!(obj instanceof List)) { return -1; } List list = (List) obj; if (list.size() != this.axes.size()) { return -1; } ListIterator listIterator = list.listIterator(); int i = 0; while (listIterator.hasNext()) { int nextIndex = listIterator.nextIndex(); int lastIndexOf = this.axes.get(nextIndex).lastIndexOf(listIterator.next()); if (lastIndexOf == -1) { return -1; } i += lastIndexOf * this.axesSizeProduct[nextIndex + 1]; } return i; } @Override // java.util.AbstractList, java.util.List public final ImmutableList get(int i) { Preconditions.checkElementIndex(i, size()); return new ImmutableList(this, i) { // from class: com.google.common.collect.CartesianList.1 final CartesianList this$0; final int val$index; /* JADX INFO: Access modifiers changed from: package-private */ @Override // com.google.common.collect.ImmutableCollection public boolean isPartialView() { return true; } { this.this$0 = this; this.val$index = i; } @Override // java.util.AbstractCollection, java.util.Collection, java.util.List public int size() { return this.this$0.axes.size(); } @Override // java.util.List public E get(int i2) { Preconditions.checkElementIndex(i2, size()); return (E) ((List) this.this$0.axes.get(i2)).get(this.this$0.getAxisIndexForProductIndex(this.val$index, i2)); } }; } @Override // java.util.AbstractCollection, java.util.Collection, java.util.List public final int size() { return this.axesSizeProduct[0]; } @Override // java.util.AbstractCollection, java.util.Collection, java.util.List public final boolean contains(Object obj) { if (!(obj instanceof List)) { return false; } List list = (List) obj; if (list.size() != this.axes.size()) { return false; } Iterator it = list.iterator(); int i = 0; while (it.hasNext()) { if (!this.axes.get(i).contains(it.next())) { return false; } i++; } return true; } }