EStack 类工作正常并给出结果输出(它获取顶部元素并将其副本放在方法下推中指定的堆栈的任何位置)。
但是,我只能让它为整数工作(因此将大多数东西变成整数)。我怎样才能让它适用于放入堆栈中的任何类型的对象(int、string、char、double、float 等)?
import java.util.*;
public class EStack extends Stack{
public static void pushdown(Stack s, int i){
Integer marker = (Integer) s.size() - i;
Integer top = (Integer) s.peek();
Stack temp = new Stack();
while(s.empty() != true){
Integer elem = (Integer) s.pop();
temp.push(elem);
}
while(temp.empty() != true){
if(marker == s.size()){
s.push(top);
}
Integer elem = (Integer) temp.pop();
s.push(elem);
}
}
public static void main(String[] args){
Stack s = new Stack();
s.push(1);
s.push(2);
s.push(3);
s.push(4);
pushdown(s, 2);
while(s.empty() != true){
System.out.println(s.pop());
}
}
}
输出:
4
3
4
2
1