gpt4 book ai didi

java - java中的堆栈无法正常工作?

转载 作者:行者123 更新时间:2023-12-03 06:55:46 26 4
gpt4 key购买 nike

我正在尝试将数据存储到堆栈中。如果我错了,请纠正我,堆栈是后进先出类型。所以,预计我的程序的输出会有点相反。但遗憾的是输出是不同的。我不确定代码的哪一部分是错误的。

请帮忙:|

代码:

`

公共(public)类 CorruptQueue{

public static void LineUp(){

BufferedReader br = null;

try {

String line;
Stack nameStack = new Stack();
Stack statusStack = new Stack();
Stack stack = new Stack();

br = new BufferedReader(new FileReader("C:/Users/user/Desktop/School Files/Project/CorruptOffice/input.txt"));

while ((line = br.readLine()) != null) {


StringTokenizer stringTokenizer = new StringTokenizer(line, " ");

while (stringTokenizer.hasMoreElements()) {


String lineup = stringTokenizer.nextElement().toString();
String name = stringTokenizer.nextElement().toString();
String status = stringTokenizer.nextElement().toString();



nameStack.push(name);
statusStack.push(status);
System.out.println("Now serving "+ nameStack.pop() + " a " + statusStack.pop());



/*StringBuilder sb = new StringBuilder();
sb.append("" + lineup);
sb.append(" " + name);
sb.append("" + status);
sb.append("\n\n");

System.out.println(sb.toString());*/
}

}

System.out.println("Done");

} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null)
br.close();

} catch (IOException ex) {
ex.printStackTrace();
}
}

}



public static void main(String[] args)
{
LineUp();

}}`

输入:

阵容约翰常规

阵容鲍勃常规

阵容汤姆常规

阵容莎拉VIP

阵容玛丽VIP

阵容琼VIP

阵容Bea VIP

汉克常规阵容

阵容艺术常规

阵容雏菊VIP

阵容 Marius 常规

阵容丹麦 VIP

输出:

现在是约翰的常客

现在为鲍勃提供常规服务

现在为汤姆提供常规服务

现在为莎拉提供 VIP 服务

现在为玛丽提供 VIP 服务

现在为琼提供 VIP 服务

现在为 Bea 提供 VIP 服务

现在为汉克提供常规服务

现在为艺术提供常规服务

现在为 Daisy 提供 VIP 服务

现在定期为 Marius 服务

现在为 Dane 提供 VIP 服务

完成

最佳答案

你的堆栈操作似乎在这里

nameStack.push(name);
statusStack.push(status);
System.out.println("Now serving "+ nameStack.pop() + " a " + statusStack.pop());

现在,如果您在开始弹出任何内容之前将它们全部压入,那么您的堆栈将会反转名称,但您一次会同时压入和弹出 1 个项目。

所以本质上,您将 namestatus 压入堆栈,但在进行其他操作之前,您只需将它们弹出并将它们打印到控制台即可。

你的堆栈并没有真正做任何事情。

<小时/>

如果您确实想反转输出,请采取

System.out.println("Now serving "+ nameStack.pop() + " a " + statusStack.pop());

跳出初始循环,然后将其放入新循环中。

关于java - java中的堆栈无法正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15071296/

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