📅  最后修改于: 2023-12-03 14:42:21.638000             🧑  作者: Mango
Java中的java.util.Stack
类,继承自Vector
类,是一个后进先出(LIFO)的栈数据结构。它可以用于在编程中实现函数调用栈、表达式求值等。在Stack类中存放元素的顺序是以状态列表的形式进行, 实现数据压入(push)和弹出(pop)的操作,以及查找操作等功能。
Stack类有三个构造函数:
Stack()
Stack(int initialCapacity)
Stack(Collection<? extends E> c)
默认的构造函数创建一个空的栈对象。第二个构造函数创建一个初始容量为initialCapacity
的栈对象。第三个构造函数创建一个包含指定集合元素的栈。
push(E item)
方法将元素压入栈中。
Stack<String> stack = new Stack<>();
stack.push("Java");
stack.push("Python");
stack.push("Go");
pop()
方法将栈顶元素弹出并返回。
Stack<String> stack = new Stack<>();
stack.push("Java");
stack.push("Python");
stack.push("Go");
System.out.println(stack.pop()); // Go
System.out.println(stack.pop()); // Python
peek()
方法返回栈顶元素,但不弹出。
Stack<String> stack = new Stack<>();
stack.push("Java");
stack.push("Python");
stack.push("Go");
System.out.println(stack.peek()); // Go
System.out.println(stack.peek()); // Go
empty()
方法检查栈是否为空。
Stack<String> stack = new Stack<>();
System.out.println(stack.empty()); // true
stack.push("Java");
System.out.println(stack.empty()); // false
search(E item)
方法返回元素在栈中的位置,如果未找到则返回-1。
Stack<String> stack = new Stack<>();
stack.push("Java");
stack.push("Python");
stack.push("Go");
System.out.println(stack.search("Python")); // 2
System.out.println(stack.search("C++")); // -1
Stack类是Java中一个很有用的数据结构,可以用于实现函数调用栈、表达式求值等操作。在使用Stack类时需要注意栈的大小以及元素的类型。