package com.huawei.hms.framework.common; import java.util.Collection; import java.util.Iterator; import java.util.NoSuchElementException; import java.util.concurrent.ConcurrentLinkedQueue; /* loaded from: classes2.dex */ public class LimitQueue extends ConcurrentLinkedQueue { private static final String TAG = "LimitQueue"; private static final long serialVersionUID = -4636313759149307798L; private boolean deduplication; private int limit; public LimitQueue(int i) { this.deduplication = false; this.limit = i; } public LimitQueue(int i, boolean z) { this.limit = i; this.deduplication = z; } public LimitQueue(Collection collection, boolean z) { this(collection.size(), z); addAll(collection); } @Override // java.util.concurrent.ConcurrentLinkedQueue, java.util.Queue public boolean offer(E e) { if (this.deduplication) { super.remove(e); } if (super.size() >= this.limit) { super.poll(); } return super.offer(e); } @Override // java.util.concurrent.ConcurrentLinkedQueue, java.util.AbstractQueue, java.util.AbstractCollection, java.util.Collection, java.util.Queue public boolean add(E e) { if (this.deduplication) { super.remove(e); } if (super.size() >= this.limit) { super.poll(); } return super.add(e); } @Override // java.util.concurrent.ConcurrentLinkedQueue, java.util.AbstractQueue, java.util.AbstractCollection, java.util.Collection public void clear() { super.clear(); } @Override // java.util.concurrent.ConcurrentLinkedQueue, java.util.Queue public E poll() { return (E) super.poll(); } @Override // java.util.AbstractQueue, java.util.Queue public E remove() { try { return (E) super.remove(); } catch (NoSuchElementException unused) { Logger.w(TAG, "remove failed, limitQueue is empty"); return null; } } @Override // java.util.concurrent.ConcurrentLinkedQueue, java.util.AbstractQueue, java.util.AbstractCollection, java.util.Collection public boolean addAll(Collection collection) { if (collection.size() > this.limit) { return false; } if (this.deduplication) { super.removeAll(collection); } for (int size = (collection.size() + super.size()) - this.limit; size > 0; size--) { super.poll(); } return super.addAll(collection); } public E get(int i) { Iterator it = iterator(); E e = null; for (int i2 = 0; i2 <= i && it.hasNext(); i2++) { e = it.next(); } return e; } public E peekLast() { Iterator it = iterator(); E e = null; while (it.hasNext()) { e = it.next(); } return e; } public int getLimit() { return this.limit; } }