0
0
Fork 0

Add an OrderedSet datatype

This commit is contained in:
Oliver Akins 2022-12-25 15:55:44 -06:00
parent 76052fdcb9
commit e825c2cfdd
No known key found for this signature in database
GPG key ID: 3C2014AF9457AF99

36
jlib/OrderedSet.java Normal file
View file

@ -0,0 +1,36 @@
package jlib;
import java.util.HashSet;
import java.util.Stack;
public class OrderedSet<T> extends HashSet<T> {
private Stack<T> order;
public OrderedSet() {
this.order = new Stack<T>();
}
@Override
public boolean add(T e) {
if (super.add(e)) {
this.order.add(e);
return true;
}
return false;
}
/**
* Removes the most recently added element from the set
*
* @return The element that was removed from the set
*/
public T pop() {
T e = this.order.pop();
this.remove(e);
return e;
}
public T top() {
return this.order.peek();
}
}