已知模块类Hashtable<KeyT, ValueT>支持get(key),set(key,value)和delete(key)的操作,请使用该Hashtable作为唯一成员变量,实现一个栈(Stack)类,支持入栈(push)和出栈(pop)的操作。
请简单描述思路:
public class Stack<V>{
private Hashtable<Integer,V> map = new Hashtable<Integer,V>();
public V pop(){
//查找map中最大的key值
int max = Integer.MIN_VALUE;
Iterator<Integer> iter = map.keySet().iterator();
while (iter.hasNext()){
max = Math.max(max,iter.next());
}
//删除key为max的记录
V ans = map.get(max);
map.delete(max);
return ans;
}
public void push(V val){
//查找map中最大的key值
int max = Integer.MIN_VALUE;
Iterator<Integer> iter = map.keySet().iterator();
while (iter.hasNext()){
max = Math.max(max,iter.next());
}
//添加key为max+1的记录
map.set(max+1,val); }
}