gpt4 book ai didi

java - 扩展堆栈库

转载 作者:行者123 更新时间:2023-12-01 13:52:44 24 4
gpt4 key购买 nike

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

最佳答案

我认为这会起作用,因为 Stack 接受 Object:

public static void pushdown(Stack s, int i){
Integer marker = (Integer) s.size() - i;
Object top = s.peek();
Stack temp = new Stack();
while(s.empty() != true){
Object elem = s.pop();
temp.push(elem);
}
while(temp.empty() != true){
if(marker == s.size()){
s.push(top);
}
Object elem = temp.pop();
s.push(elem);
}
}

基本上我删除了所有的整数转换。

关于java - 扩展堆栈库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19846965/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com