首页  >  文章  >  Java  >  Java中的栈类

Java中的栈类

WBOY
WBOY原创
2024-08-30 16:01:28650浏览

Stack 类是 java.util 包的一部分,它实现了堆栈数据结构。 java中的栈类按照LIFO(后进先出)的原则运行。 Stack 类提供基本的压入和弹出操作以及附加功能,例如清空、查看和搜索。 stack类提供了不同的方法来执行不同的操作。

开始您的免费软件开发课程

网络开发、编程语言、软件测试及其他

语法:

这是在 java 中如何使用堆栈类的基本语法:

import java.util.*;
// instantiate stack through default constructor
Public class Myclass{
// instantiate stack class
Stack stack = new Stack();
stack.push(1);  // calling push method to insert an element
}

Stack 类在 java 中如何工作?

Stack类是java.util包的一部分,它扩展了Vector类并实现了List接口。 Vector 类在 java 中是可调整大小的,这意味着它可以在添加新元素时增大大小,并在删除元素后缩小大小。由于堆栈类扩展了向量,因此它本质上也是可调整大小的。要使用堆栈类,我们必须通过构造函数创建堆栈类的实例。由于堆栈类是可调整大小的,因此其中只有一个默认构造函数可用。

获取实例后,可以根据需要调用以下方法:

  • push(): 该方法在栈顶插入一个元素并返回插入的元素。
  • pop():此方法从堆栈中删除最后插入的元素并返回删除的元素。
  • peek(): 此方法返回堆栈顶部的元素,而不将它们从堆栈中删除。
  • search(对象元素):该方法在栈中搜索指定元素,如果找到该元素,则从栈顶返回其索引;否则,返回-1。
  • empty(): 此方法检查给定堆栈是否为空。如果栈为空则返回true;否则,返回 false。
  • size():此方法返回堆栈中可用的元素数量。

Java 中的 Stack 类示例

部分示例如下:

示例#1

现在我们将看到一个java代码示例,说明如何在堆栈中使用上述方法。

代码:

//import stack class
import java.util.Stack;
public class StackDemo {
public static void main(String[] args) {
// Creating Instance of  Stack
Stack<String> numbers = new Stack<>(); // stack of type string only string type elements can be inserted
// Pushing new elements to the Stack
numbers.push("One");
numbers.push("Two");
numbers.push("Three");
numbers.push("Four");
int size= numbers.size(); // finding size of stack
System.out.println("Stack contains => " + numbers);
System.out.println("Size of Stack is  => " + size);
System.out.println();
// Popping Elements from the Stack
String numbersAtTop = numbers.pop();  // Throws EmptyStackException if the stack is empty
System.out.println("Element Removed  => " + numbersAtTop);
System.out.println("Current State of Stack => " + numbers);
size= numbers.size();
System.out.println("Size of Stack is  => " + size);
System.out.println();
// Get the element at the top of the stack without removing it
numbersAtTop = numbers.peek();
System.out.println("Top Most elemement of stack  => " + numbersAtTop);
System.out.println("Current State of Stack => " + numbers);
// searching for an element in stack
int index = numbers.search("Two");
System.out.println("Element found at Index " + index);
// check if the stack is empty
boolean isempty = numbers.empty();
System.out.println("Is Stack Empty =>  " + isempty);
}}

上面的程序展示了如何在堆栈类上执行不同的操作,如入栈、出栈、查看、搜索、清空等。

示例#2

现在我们将了解如何迭代堆栈类的元素。

代码:

//import stack class
import java.util.Stack;
//import stream to iterate over stack
import java.util.stream.Stream;
public class StackDemo {
public static void main(String[] args) {
// Creating Instance of  Stack
Stack<String> numbers = new Stack<>(); // stack of type string only string type elements can be inserted
// Pushing new elements to the Stack
numbers.push("First");
numbers.push("Second");
numbers.push("Third");
numbers.push("Fourth");
System.out.println("Stack contains => " + numbers);
System.out.println();
// getting stream object to iterate over elements of stack
Stream stream = numbers.stream();
System.out.println("Iterating stack using stream >> ");
stream.forEach((item) -> {
System.out.println(item);  // print item
});
}
}

上面的程序展示了我们如何迭代堆栈的元素。我们需要在堆栈实例上调用stream()方法,该方法返回Stream对象。然后我们可以使用流类的 forEach 方法迭代堆栈。

结论

在本文中,我们了解了堆栈类。此外,我们还了解了如何实例化堆栈类并使用堆栈类中可用的不同方法。我们已经观察到可以使用 Stack 类执行的各种操作。上面显示的 Java 代码示例完全清晰地介绍了堆栈类。

以上是Java中的栈类的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn