ADD week 5
This commit is contained in:
		
							
								
								
									
										294
									
								
								02-Easy5/E5/sources/kotlin/collections/AbstractList.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										294
									
								
								02-Easy5/E5/sources/kotlin/collections/AbstractList.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,294 @@ | ||||
| package kotlin.collections; | ||||
|  | ||||
| import java.util.Collection; | ||||
| import java.util.Iterator; | ||||
| import java.util.List; | ||||
| import java.util.ListIterator; | ||||
| import java.util.NoSuchElementException; | ||||
| import java.util.RandomAccess; | ||||
| import kotlin.Metadata; | ||||
| import kotlin.jvm.internal.DefaultConstructorMarker; | ||||
| import kotlin.jvm.internal.Intrinsics; | ||||
| import kotlin.jvm.internal.markers.KMappedMarker; | ||||
|  | ||||
| /* compiled from: AbstractList.kt */ | ||||
| @Metadata(d1 = {"\u00008\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0010 \n\u0002\b\u0002\n\u0002\u0010\b\n\u0002\b\u0003\n\u0002\u0010\u000b\n\u0000\n\u0002\u0010\u0000\n\u0002\b\b\n\u0002\u0010(\n\u0002\b\u0002\n\u0002\u0010*\n\u0002\b\b\b'\u0018\u0000 \u001c*\u0006\b\u0000\u0010\u0001 \u00012\b\u0012\u0004\u0012\u0002H\u00010\u00022\b\u0012\u0004\u0012\u0002H\u00010\u0003:\u0004\u001c\u001d\u001e\u001fB\u0007\b\u0004¢\u0006\u0002\u0010\u0004J\u0013\u0010\t\u001a\u00020\n2\b\u0010\u000b\u001a\u0004\u0018\u00010\fH\u0096\u0002J\u0016\u0010\r\u001a\u00028\u00002\u0006\u0010\u000e\u001a\u00020\u0006H¦\u0002¢\u0006\u0002\u0010\u000fJ\b\u0010\u0010\u001a\u00020\u0006H\u0016J\u0015\u0010\u0011\u001a\u00020\u00062\u0006\u0010\u0012\u001a\u00028\u0000H\u0016¢\u0006\u0002\u0010\u0013J\u000f\u0010\u0014\u001a\b\u0012\u0004\u0012\u00028\u00000\u0015H\u0096\u0002J\u0015\u0010\u0016\u001a\u00020\u00062\u0006\u0010\u0012\u001a\u00028\u0000H\u0016¢\u0006\u0002\u0010\u0013J\u000e\u0010\u0017\u001a\b\u0012\u0004\u0012\u00028\u00000\u0018H\u0016J\u0016\u0010\u0017\u001a\b\u0012\u0004\u0012\u00028\u00000\u00182\u0006\u0010\u000e\u001a\u00020\u0006H\u0016J\u001e\u0010\u0019\u001a\b\u0012\u0004\u0012\u00028\u00000\u00032\u0006\u0010\u001a\u001a\u00020\u00062\u0006\u0010\u001b\u001a\u00020\u0006H\u0016R\u0012\u0010\u0005\u001a\u00020\u0006X¦\u0004¢\u0006\u0006\u001a\u0004\b\u0007\u0010\b¨\u0006 "}, d2 = {"Lkotlin/collections/AbstractList;", "E", "Lkotlin/collections/AbstractCollection;", "", "()V", "size", "", "getSize", "()I", "equals", "", "other", "", "get", "index", "(I)Ljava/lang/Object;", "hashCode", "indexOf", "element", "(Ljava/lang/Object;)I", "iterator", "", "lastIndexOf", "listIterator", "", "subList", "fromIndex", "toIndex", "Companion", "IteratorImpl", "ListIteratorImpl", "SubList", "kotlin-stdlib"}, k = 1, mv = {1, 8, 0}, xi = 48) | ||||
| /* loaded from: classes.dex */ | ||||
| public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E>, KMappedMarker { | ||||
|  | ||||
|     /* renamed from: Companion, reason: from kotlin metadata */ | ||||
|     public static final Companion INSTANCE = new Companion(null); | ||||
|  | ||||
|     @Override // java.util.List | ||||
|     public void add(int i, E e) { | ||||
|         throw new UnsupportedOperationException("Operation is not supported for read-only collection"); | ||||
|     } | ||||
|  | ||||
|     @Override // java.util.List | ||||
|     public boolean addAll(int i, Collection<? extends E> collection) { | ||||
|         throw new UnsupportedOperationException("Operation is not supported for read-only collection"); | ||||
|     } | ||||
|  | ||||
|     @Override // java.util.List | ||||
|     public abstract E get(int index); | ||||
|  | ||||
|     @Override // kotlin.collections.AbstractCollection | ||||
|     /* renamed from: getSize */ | ||||
|     public abstract int get_size(); | ||||
|  | ||||
|     @Override // java.util.List | ||||
|     public E remove(int i) { | ||||
|         throw new UnsupportedOperationException("Operation is not supported for read-only collection"); | ||||
|     } | ||||
|  | ||||
|     @Override // java.util.List | ||||
|     public E set(int i, E e) { | ||||
|         throw new UnsupportedOperationException("Operation is not supported for read-only collection"); | ||||
|     } | ||||
|  | ||||
|     protected AbstractList() { | ||||
|     } | ||||
|  | ||||
|     @Override // kotlin.collections.AbstractCollection, java.util.Collection, java.lang.Iterable | ||||
|     public Iterator<E> iterator() { | ||||
|         return new IteratorImpl(); | ||||
|     } | ||||
|  | ||||
|     @Override // java.util.List | ||||
|     public int indexOf(E element) { | ||||
|         Iterator<E> it = iterator(); | ||||
|         int i = 0; | ||||
|         while (it.hasNext()) { | ||||
|             if (Intrinsics.areEqual(it.next(), element)) { | ||||
|                 return i; | ||||
|             } | ||||
|             i++; | ||||
|         } | ||||
|         return -1; | ||||
|     } | ||||
|  | ||||
|     @Override // java.util.List | ||||
|     public int lastIndexOf(E element) { | ||||
|         AbstractList<E> abstractList = this; | ||||
|         ListIterator<E> listIterator = abstractList.listIterator(abstractList.size()); | ||||
|         while (listIterator.hasPrevious()) { | ||||
|             if (Intrinsics.areEqual(listIterator.previous(), element)) { | ||||
|                 return listIterator.nextIndex(); | ||||
|             } | ||||
|         } | ||||
|         return -1; | ||||
|     } | ||||
|  | ||||
|     @Override // java.util.List | ||||
|     public ListIterator<E> listIterator() { | ||||
|         return new ListIteratorImpl(0); | ||||
|     } | ||||
|  | ||||
|     @Override // java.util.List | ||||
|     public ListIterator<E> listIterator(int index) { | ||||
|         return new ListIteratorImpl(index); | ||||
|     } | ||||
|  | ||||
|     @Override // java.util.List | ||||
|     public List<E> subList(int fromIndex, int toIndex) { | ||||
|         return new SubList(this, fromIndex, toIndex); | ||||
|     } | ||||
|  | ||||
|     /* compiled from: AbstractList.kt */ | ||||
|     @Metadata(d1 = {"\u0000\u001e\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\b\n\u0002\b\n\b\u0002\u0018\u0000*\u0006\b\u0001\u0010\u0001 \u00012\b\u0012\u0004\u0012\u0002H\u00010\u00022\u00060\u0003j\u0002`\u0004B#\u0012\f\u0010\u0005\u001a\b\u0012\u0004\u0012\u00028\u00010\u0002\u0012\u0006\u0010\u0006\u001a\u00020\u0007\u0012\u0006\u0010\b\u001a\u00020\u0007¢\u0006\u0002\u0010\tJ\u0016\u0010\u000e\u001a\u00028\u00012\u0006\u0010\u000f\u001a\u00020\u0007H\u0096\u0002¢\u0006\u0002\u0010\u0010R\u000e\u0010\n\u001a\u00020\u0007X\u0082\u000e¢\u0006\u0002\n\u0000R\u000e\u0010\u0006\u001a\u00020\u0007X\u0082\u0004¢\u0006\u0002\n\u0000R\u0014\u0010\u0005\u001a\b\u0012\u0004\u0012\u00028\u00010\u0002X\u0082\u0004¢\u0006\u0002\n\u0000R\u0014\u0010\u000b\u001a\u00020\u00078VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b\f\u0010\r¨\u0006\u0011"}, d2 = {"Lkotlin/collections/AbstractList$SubList;", "E", "Lkotlin/collections/AbstractList;", "Ljava/util/RandomAccess;", "Lkotlin/collections/RandomAccess;", "list", "fromIndex", "", "toIndex", "(Lkotlin/collections/AbstractList;II)V", "_size", "size", "getSize", "()I", "get", "index", "(I)Ljava/lang/Object;", "kotlin-stdlib"}, k = 1, mv = {1, 8, 0}, xi = 48) | ||||
|     private static final class SubList<E> extends AbstractList<E> implements RandomAccess { | ||||
|         private int _size; | ||||
|         private final int fromIndex; | ||||
|         private final AbstractList<E> list; | ||||
|  | ||||
|         @Override // kotlin.collections.AbstractList, kotlin.collections.AbstractCollection | ||||
|         /* renamed from: getSize, reason: from getter */ | ||||
|         public int get_size() { | ||||
|             return this._size; | ||||
|         } | ||||
|  | ||||
|         /* JADX WARN: Multi-variable type inference failed */ | ||||
|         public SubList(AbstractList<? extends E> list, int i, int i2) { | ||||
|             Intrinsics.checkNotNullParameter(list, "list"); | ||||
|             this.list = list; | ||||
|             this.fromIndex = i; | ||||
|             AbstractList.INSTANCE.checkRangeIndexes$kotlin_stdlib(i, i2, list.size()); | ||||
|             this._size = i2 - i; | ||||
|         } | ||||
|  | ||||
|         @Override // kotlin.collections.AbstractList, java.util.List | ||||
|         public E get(int index) { | ||||
|             AbstractList.INSTANCE.checkElementIndex$kotlin_stdlib(index, this._size); | ||||
|             return this.list.get(this.fromIndex + index); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override // java.util.Collection, java.util.List | ||||
|     public boolean equals(Object other) { | ||||
|         if (other == this) { | ||||
|             return true; | ||||
|         } | ||||
|         if (other instanceof List) { | ||||
|             return INSTANCE.orderedEquals$kotlin_stdlib(this, (Collection) other); | ||||
|         } | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     @Override // java.util.Collection, java.util.List | ||||
|     public int hashCode() { | ||||
|         return INSTANCE.orderedHashCode$kotlin_stdlib(this); | ||||
|     } | ||||
|  | ||||
|     /* compiled from: AbstractList.kt */ | ||||
|     @Metadata(d1 = {"\u0000\u001c\n\u0002\u0018\u0002\n\u0002\u0010(\n\u0002\b\u0002\n\u0002\u0010\b\n\u0002\b\u0005\n\u0002\u0010\u000b\n\u0002\b\u0003\b\u0092\u0004\u0018\u00002\b\u0012\u0004\u0012\u00028\u00000\u0001B\u0005¢\u0006\u0002\u0010\u0002J\t\u0010\t\u001a\u00020\nH\u0096\u0002J\u000e\u0010\u000b\u001a\u00028\u0000H\u0096\u0002¢\u0006\u0002\u0010\fR\u001a\u0010\u0003\u001a\u00020\u0004X\u0084\u000e¢\u0006\u000e\n\u0000\u001a\u0004\b\u0005\u0010\u0006\"\u0004\b\u0007\u0010\b¨\u0006\r"}, d2 = {"Lkotlin/collections/AbstractList$IteratorImpl;", "", "(Lkotlin/collections/AbstractList;)V", "index", "", "getIndex", "()I", "setIndex", "(I)V", "hasNext", "", "next", "()Ljava/lang/Object;", "kotlin-stdlib"}, k = 1, mv = {1, 8, 0}, xi = 48) | ||||
|     private class IteratorImpl implements Iterator<E>, KMappedMarker { | ||||
|         private int index; | ||||
|  | ||||
|         protected final int getIndex() { | ||||
|             return this.index; | ||||
|         } | ||||
|  | ||||
|         @Override // java.util.Iterator | ||||
|         public void remove() { | ||||
|             throw new UnsupportedOperationException("Operation is not supported for read-only collection"); | ||||
|         } | ||||
|  | ||||
|         protected final void setIndex(int i) { | ||||
|             this.index = i; | ||||
|         } | ||||
|  | ||||
|         public IteratorImpl() { | ||||
|         } | ||||
|  | ||||
|         @Override // java.util.Iterator | ||||
|         public boolean hasNext() { | ||||
|             return this.index < AbstractList.this.size(); | ||||
|         } | ||||
|  | ||||
|         @Override // java.util.Iterator | ||||
|         public E next() { | ||||
|             if (!hasNext()) { | ||||
|                 throw new NoSuchElementException(); | ||||
|             } | ||||
|             AbstractList<E> abstractList = AbstractList.this; | ||||
|             int i = this.index; | ||||
|             this.index = i + 1; | ||||
|             return abstractList.get(i); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /* compiled from: AbstractList.kt */ | ||||
|     @Metadata(d1 = {"\u0000\"\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0010*\n\u0000\n\u0002\u0010\b\n\u0002\b\u0002\n\u0002\u0010\u000b\n\u0002\b\u0005\b\u0092\u0004\u0018\u00002\f0\u0001R\b\u0012\u0004\u0012\u00028\u00000\u00022\b\u0012\u0004\u0012\u00028\u00000\u0003B\r\u0012\u0006\u0010\u0004\u001a\u00020\u0005¢\u0006\u0002\u0010\u0006J\b\u0010\u0007\u001a\u00020\bH\u0016J\b\u0010\t\u001a\u00020\u0005H\u0016J\r\u0010\n\u001a\u00028\u0000H\u0016¢\u0006\u0002\u0010\u000bJ\b\u0010\f\u001a\u00020\u0005H\u0016¨\u0006\r"}, d2 = {"Lkotlin/collections/AbstractList$ListIteratorImpl;", "Lkotlin/collections/AbstractList$IteratorImpl;", "Lkotlin/collections/AbstractList;", "", "index", "", "(Lkotlin/collections/AbstractList;I)V", "hasPrevious", "", "nextIndex", "previous", "()Ljava/lang/Object;", "previousIndex", "kotlin-stdlib"}, k = 1, mv = {1, 8, 0}, xi = 48) | ||||
|     private class ListIteratorImpl extends AbstractList<E>.IteratorImpl implements ListIterator<E>, KMappedMarker { | ||||
|         @Override // java.util.ListIterator | ||||
|         public void add(E e) { | ||||
|             throw new UnsupportedOperationException("Operation is not supported for read-only collection"); | ||||
|         } | ||||
|  | ||||
|         @Override // java.util.ListIterator | ||||
|         public void set(E e) { | ||||
|             throw new UnsupportedOperationException("Operation is not supported for read-only collection"); | ||||
|         } | ||||
|  | ||||
|         public ListIteratorImpl(int i) { | ||||
|             super(); | ||||
|             AbstractList.INSTANCE.checkPositionIndex$kotlin_stdlib(i, AbstractList.this.size()); | ||||
|             setIndex(i); | ||||
|         } | ||||
|  | ||||
|         @Override // java.util.ListIterator | ||||
|         public boolean hasPrevious() { | ||||
|             return getIndex() > 0; | ||||
|         } | ||||
|  | ||||
|         @Override // java.util.ListIterator | ||||
|         public int nextIndex() { | ||||
|             return getIndex(); | ||||
|         } | ||||
|  | ||||
|         @Override // java.util.ListIterator | ||||
|         public E previous() { | ||||
|             if (!hasPrevious()) { | ||||
|                 throw new NoSuchElementException(); | ||||
|             } | ||||
|             AbstractList<E> abstractList = AbstractList.this; | ||||
|             setIndex(getIndex() - 1); | ||||
|             return abstractList.get(getIndex()); | ||||
|         } | ||||
|  | ||||
|         @Override // java.util.ListIterator | ||||
|         public int previousIndex() { | ||||
|             return getIndex() - 1; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /* compiled from: AbstractList.kt */ | ||||
|     @Metadata(d1 = {"\u0000(\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0000\n\u0002\u0010\b\n\u0002\b\r\n\u0002\u0010\u000b\n\u0000\n\u0002\u0010\u001e\n\u0002\b\u0005\b\u0080\u0003\u0018\u00002\u00020\u0001B\u0007\b\u0002¢\u0006\u0002\u0010\u0002J%\u0010\u0003\u001a\u00020\u00042\u0006\u0010\u0005\u001a\u00020\u00062\u0006\u0010\u0007\u001a\u00020\u00062\u0006\u0010\b\u001a\u00020\u0006H\u0000¢\u0006\u0002\b\tJ\u001d\u0010\n\u001a\u00020\u00042\u0006\u0010\u000b\u001a\u00020\u00062\u0006\u0010\b\u001a\u00020\u0006H\u0000¢\u0006\u0002\b\fJ\u001d\u0010\r\u001a\u00020\u00042\u0006\u0010\u000b\u001a\u00020\u00062\u0006\u0010\b\u001a\u00020\u0006H\u0000¢\u0006\u0002\b\u000eJ%\u0010\u000f\u001a\u00020\u00042\u0006\u0010\u0010\u001a\u00020\u00062\u0006\u0010\u0011\u001a\u00020\u00062\u0006\u0010\b\u001a\u00020\u0006H\u0000¢\u0006\u0002\b\u0012J%\u0010\u0013\u001a\u00020\u00142\n\u0010\u0015\u001a\u0006\u0012\u0002\b\u00030\u00162\n\u0010\u0017\u001a\u0006\u0012\u0002\b\u00030\u0016H\u0000¢\u0006\u0002\b\u0018J\u0019\u0010\u0019\u001a\u00020\u00062\n\u0010\u0015\u001a\u0006\u0012\u0002\b\u00030\u0016H\u0000¢\u0006\u0002\b\u001a¨\u0006\u001b"}, d2 = {"Lkotlin/collections/AbstractList$Companion;", "", "()V", "checkBoundsIndexes", "", "startIndex", "", "endIndex", "size", "checkBoundsIndexes$kotlin_stdlib", "checkElementIndex", "index", "checkElementIndex$kotlin_stdlib", "checkPositionIndex", "checkPositionIndex$kotlin_stdlib", "checkRangeIndexes", "fromIndex", "toIndex", "checkRangeIndexes$kotlin_stdlib", "orderedEquals", "", "c", "", "other", "orderedEquals$kotlin_stdlib", "orderedHashCode", "orderedHashCode$kotlin_stdlib", "kotlin-stdlib"}, k = 1, mv = {1, 8, 0}, xi = 48) | ||||
|     public static final class Companion { | ||||
|         public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) { | ||||
|             this(); | ||||
|         } | ||||
|  | ||||
|         private Companion() { | ||||
|         } | ||||
|  | ||||
|         public final void checkElementIndex$kotlin_stdlib(int index, int size) { | ||||
|             if (index < 0 || index >= size) { | ||||
|                 throw new IndexOutOfBoundsException("index: " + index + ", size: " + size); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         public final void checkPositionIndex$kotlin_stdlib(int index, int size) { | ||||
|             if (index < 0 || index > size) { | ||||
|                 throw new IndexOutOfBoundsException("index: " + index + ", size: " + size); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         public final void checkRangeIndexes$kotlin_stdlib(int fromIndex, int toIndex, int size) { | ||||
|             if (fromIndex < 0 || toIndex > size) { | ||||
|                 throw new IndexOutOfBoundsException("fromIndex: " + fromIndex + ", toIndex: " + toIndex + ", size: " + size); | ||||
|             } | ||||
|             if (fromIndex <= toIndex) { | ||||
|                 return; | ||||
|             } | ||||
|             throw new IllegalArgumentException("fromIndex: " + fromIndex + " > toIndex: " + toIndex); | ||||
|         } | ||||
|  | ||||
|         public final void checkBoundsIndexes$kotlin_stdlib(int startIndex, int endIndex, int size) { | ||||
|             if (startIndex < 0 || endIndex > size) { | ||||
|                 throw new IndexOutOfBoundsException("startIndex: " + startIndex + ", endIndex: " + endIndex + ", size: " + size); | ||||
|             } | ||||
|             if (startIndex <= endIndex) { | ||||
|                 return; | ||||
|             } | ||||
|             throw new IllegalArgumentException("startIndex: " + startIndex + " > endIndex: " + endIndex); | ||||
|         } | ||||
|  | ||||
|         public final int orderedHashCode$kotlin_stdlib(Collection<?> c) { | ||||
|             Intrinsics.checkNotNullParameter(c, "c"); | ||||
|             Iterator<?> it = c.iterator(); | ||||
|             int i = 1; | ||||
|             while (it.hasNext()) { | ||||
|                 Object next = it.next(); | ||||
|                 i = (i * 31) + (next != null ? next.hashCode() : 0); | ||||
|             } | ||||
|             return i; | ||||
|         } | ||||
|  | ||||
|         public final boolean orderedEquals$kotlin_stdlib(Collection<?> c, Collection<?> other) { | ||||
|             Intrinsics.checkNotNullParameter(c, "c"); | ||||
|             Intrinsics.checkNotNullParameter(other, "other"); | ||||
|             if (c.size() != other.size()) { | ||||
|                 return false; | ||||
|             } | ||||
|             Iterator<?> it = other.iterator(); | ||||
|             Iterator<?> it2 = c.iterator(); | ||||
|             while (it2.hasNext()) { | ||||
|                 if (!Intrinsics.areEqual(it2.next(), it.next())) { | ||||
|                     return false; | ||||
|                 } | ||||
|             } | ||||
|             return true; | ||||
|         } | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user