📜  Java.util.Stack类(1)

📅  最后修改于: 2023-12-03 14:42:21.638000             🧑  作者: Mango

Java.util.Stack类介绍

Java中的java.util.Stack类,继承自Vector类,是一个后进先出(LIFO)的栈数据结构。它可以用于在编程中实现函数调用栈、表达式求值等。在Stack类中存放元素的顺序是以状态列表的形式进行, 实现数据压入(push)和弹出(pop)的操作,以及查找操作等功能。

构造函数

Stack类有三个构造函数:

Stack()
Stack(int initialCapacity)
Stack(Collection<? extends E> c)

默认的构造函数创建一个空的栈对象。第二个构造函数创建一个初始容量为initialCapacity的栈对象。第三个构造函数创建一个包含指定集合元素的栈。

常用方法
push()

push(E item)方法将元素压入栈中。

Stack<String> stack = new Stack<>();
stack.push("Java");
stack.push("Python");
stack.push("Go");
pop()

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()

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()

empty()方法检查栈是否为空。

Stack<String> stack = new Stack<>();
System.out.println(stack.empty()); // true
stack.push("Java");
System.out.println(stack.empty()); // false
search()

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类时需要注意栈的大小以及元素的类型。