Java自带的栈
引言
在编程中,栈(Stack)是一种常见的数据结构,它遵循先进后出(Last-In-First-Out,LIFO)的原则。Java语言中提供了自带的栈数据结构,方便开发者进行栈相关操作。本文将介绍Java自带的栈,并提供一些代码示例来帮助读者更好地理解和使用它。
Java自带的栈类
在Java中,栈数据结构由java.util.Stack
类实现。Stack
类是Vector
的子类,它继承了Vector的所有方法,并增加了一些能够进行栈操作的方法。
类图
下面是Stack
类的类图:
classDiagram
Stack <|-- Vector
Stack : +push(element:E)
Stack : +pop():E
Stack : +peek():E
Stack : +empty():boolean
Stack : +search(element:Object):int
栈的操作方法
1. push(element)
push
方法用于将元素压入栈顶。它接受一个元素作为参数,并将该元素添加到栈的顶部。
示例代码:
import java.util.Stack;
Stack<String> stack = new Stack<>();
stack.push("apple");
stack.push("banana");
stack.push("orange");
System.out.println(stack); // 输出: [apple, banana, orange]
2. pop()
pop
方法用于从栈顶弹出一个元素,并将其从栈中删除。它返回被弹出的元素。
示例代码:
import java.util.Stack;
Stack<String> stack = new Stack<>();
stack.push("apple");
stack.push("banana");
stack.push("orange");
String fruit = stack.pop();
System.out.println(fruit); // 输出: orange
3. peek()
peek
方法用于返回栈顶的元素,但不会将其从栈中删除。
示例代码:
import java.util.Stack;
Stack<String> stack = new Stack<>();
stack.push("apple");
stack.push("banana");
stack.push("orange");
String fruit = stack.peek();
System.out.println(fruit); // 输出: orange
System.out.println(stack); // 输出: [apple, banana, orange]
4. empty()
empty
方法用于检查栈是否为空。如果栈为空,则返回true
;否则返回false
。
示例代码:
import java.util.Stack;
Stack<String> stack = new Stack<>();
System.out.println(stack.empty()); // 输出: true
stack.push("apple");
System.out.println(stack.empty()); // 输出: false
5. search(element)
search
方法用于查找指定元素在栈中的位置。如果元素存在于栈中,则返回其距离栈顶的位置(栈顶位置为1)。如果元素不在栈中,则返回-1。
示例代码:
import java.util.Stack;
Stack<String> stack = new Stack<>();
stack.push("apple");
stack.push("banana");
stack.push("orange");
int position = stack.search("banana");
System.out.println(position); // 输出: 2
position = stack.search("grape");
System.out.println(position); // 输出: -1
总结
本文介绍了Java自带的栈类Stack
,并提供了相关的代码示例。通过使用Stack
类,我们可以方便地进行栈相关操作,如压入、弹出、查找等。希望本文能帮助读者更好地理解和使用Java自带的栈。
参考链接
- [Java Stack class documentation](