Да, но вы можете сначала переопределить equals()
в своем классе LRUCache
, потому что PriorityQueue использует его для поиска объекта для его удаления
private int indexOf(Object o) {
if (o != null) {
final Object[] es = queue;
for (int i = 0, n = size; i < n; i++)
if (o.equals(es[i]))
return i;
}
return -1;
}
, вы LRUCache
класс с помощью equals()
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null || obj.getClass() != this.getClass())
return false;
LRUCache cache = (LRUCache) obj;
return key.equals(cache.key) && freq == cache.freq;
}