java - 为什么在 ArrayDeque 和 Stack 中使用 push() 方法时输出不同?
问题描述
我是 Java 新手,学习收集主题。谁能告诉我为什么在 ArrayDeque 和 Stack 中使用 push 方法时输出会发生变化?
ArrayDeque 示例程序:
public class Simple4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayDeque q = new ArrayDeque();
q.push("e");
q.push("f");
System.out.println(q);
}
}
输出: [f,e]
堆栈示例程序:
public class Simple5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Stack s = new Stack();
s.push("apple");
s.push("banana");
System.out.println(s);
}
}
输出: [苹果,香蕉]
解决方案
您的示例都是原始类型。不要使用原始类型。此外,您Stack
正在使用 a 的默认输出格式Collection
- 请注意元素以 FIFO 顺序(而不是 LIFO)出现。要正确使用Stack
,请使用pop()
。喜欢,
Stack<String> s = new Stack<>();
s.push("apple");
s.push("banana");
while (!s.isEmpty()) {
System.out.println(s.pop());
}
哪些输出(在 LIFO 中)喜欢
banana
apple
推荐阅读
- jquery - Angular 7 cli应用程序中的JQuery datepicker不起作用
- c# - 从 ajax 控制器接收到的数据为 NULL?
- python - pandas json_normalize 所有列都有嵌套字典展平
- css - 使用带有自定义 CSS 的表单构建器并需要帮助更改按钮对齐方式
- python - django - 我的表单不会保存添加的 M2M 对象。为什么?
- php - 如何制作基于工作日日历表的mysql考勤报告与员工考勤表连接
- html - 如何在边框中的链接之间添加间距
- python - 使用 DynamoDB 和 Lambda API 处理删除请求
- python - 如何在 BeautifulSoup 中使用 Python 仅打印这一行的日期?
- javascript - react-router - 从嵌套路由器导航到父路由