73 lines
2.4 KiB
Java
73 lines
2.4 KiB
Java
package com.google.common.collect;
|
|
|
|
import com.google.common.base.Preconditions;
|
|
import java.io.Serializable;
|
|
import java.util.ArrayDeque;
|
|
import java.util.Collection;
|
|
import java.util.Queue;
|
|
|
|
/* loaded from: classes2.dex */
|
|
public final class EvictingQueue<E> extends ForwardingQueue<E> implements Serializable {
|
|
private static final long serialVersionUID = 0;
|
|
private final Queue<E> delegate;
|
|
final int maxSize;
|
|
|
|
private EvictingQueue(int i) {
|
|
Preconditions.checkArgument(i >= 0, "maxSize (%s) must >= 0", i);
|
|
this.delegate = new ArrayDeque(i);
|
|
this.maxSize = i;
|
|
}
|
|
|
|
public static <E> EvictingQueue<E> create(int i) {
|
|
return new EvictingQueue<>(i);
|
|
}
|
|
|
|
public final int remainingCapacity() {
|
|
return this.maxSize - size();
|
|
}
|
|
|
|
@Override // com.google.common.collect.ForwardingQueue, java.util.Queue
|
|
public final boolean offer(E e) {
|
|
return add(e);
|
|
}
|
|
|
|
@Override // com.google.common.collect.ForwardingCollection, java.util.Collection, java.util.Queue
|
|
public final boolean add(E e) {
|
|
Preconditions.checkNotNull(e);
|
|
if (this.maxSize == 0) {
|
|
return true;
|
|
}
|
|
if (size() == this.maxSize) {
|
|
this.delegate.remove();
|
|
}
|
|
this.delegate.add(e);
|
|
return true;
|
|
}
|
|
|
|
@Override // com.google.common.collect.ForwardingCollection, java.util.Collection
|
|
public final boolean addAll(Collection<? extends E> collection) {
|
|
int size = collection.size();
|
|
if (size >= this.maxSize) {
|
|
clear();
|
|
return Iterables.addAll(this, Iterables.skip(collection, size - this.maxSize));
|
|
}
|
|
return standardAddAll(collection);
|
|
}
|
|
|
|
@Override // com.google.common.collect.ForwardingCollection, java.util.Collection, java.util.Set
|
|
public final boolean contains(Object obj) {
|
|
return delegate().contains(Preconditions.checkNotNull(obj));
|
|
}
|
|
|
|
@Override // com.google.common.collect.ForwardingCollection, java.util.Collection, java.util.Set
|
|
public final boolean remove(Object obj) {
|
|
return delegate().remove(Preconditions.checkNotNull(obj));
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: protected */
|
|
@Override // com.google.common.collect.ForwardingQueue, com.google.common.collect.ForwardingCollection, com.google.common.collect.ForwardingObject
|
|
public final Queue<E> delegate() {
|
|
return this.delegate;
|
|
}
|
|
}
|