100个Java工具类之60:栈类Stack

栈类Stack,包名是java.util.Stack,继承java.util.Vector类。

栈是一种后进先出的数据结构,允许数据的动态插入和删除。

下面是栈类Stack的几个主要用法。

一、push(E item): 将元素 item 压入栈顶。

Stack stack = new Stack<>();
stack.push(1);
stack.push(2);

二、pop(): 弹出栈顶元素,并返回该元素。

Integer item = stack.pop();
输出:2

 

三、peek(): 返回栈顶元素,但不删除该元素。

Stack stack = new Stack<>();
stack.push(1);
stack.push(2);
Integer item = stack.peek();
输出:2

四、isEmpty(): 检查栈是否为空。

boolean isEmpty = stack.isEmpty();
输出:false

五、search(Object o): 返回元素的索引

Stack stack = new Stack<>();
stack.push(1);
stack.push(2);
int index = stack.search(2);
输出:1

六、element(): 获取栈顶元素

Stack stack = new Stack<>();
stack.push(1);
stack.push(2);
Enumeration stackEnumeration = stack.elements();
while (stackEnumeration.hasMoreElements()) {
    Integer element = stackEnumeration.nextElement();
    System.out.println(element);
}
输出:1 2

 

七、addElement(E item): 在栈顶添加一个元素

addElement和push方法非常相似,区别在于新元素被放置的位置。

使用push方法时,新元素位于栈顶;

使用addElement方法时,新元素位于栈底。

Stack stack = new Stack<>();
stack.addElement("张三");
stack.addElement("李四");
输出:[张三, 李四]

 

八、removeElement(Object obj): 删除元素。

stack.removeElement("张三");
输出:[李四]

九、elementAt(int index): 返回指定位置的元素。

String element = stack.elementAt(0);
输出:李四

注意:java.util.Stack类已经过时,取而代之的是java.util.Deque接口的实现类,例如:ArrayDeque 

你可能感兴趣的:(java,开发语言)