Я пытаюсь реализовать уникальный стек. Если я попытаюсь расширить класс стека и использовать содержимое, он будет выглядеть как весь стек, а сложность по времени станет O (n). Поэтому я попытался расширить LinkedHashSet, который удалит дубликаты сам и поддерживает порядок. Я могу реализовать все методы, кроме pop.
Кто-нибудь может поделиться своими мыслями здесь?
import java.util.Collection;
import java.util.LinkedHashSet;
import java.util.Stack;
import java.util.stream.Stream;
public class UniqueStack<E> extends LinkedHashSet<E>{
private int size = 0;
@Override
public Stream<E> stream() {
return super.stream();
}
public boolean push(E e) {
if (!contains(e)) {
++size;
return super.add(e);
}
return false;
}
public E pop() {
// struck here
return;
}
}