首頁 >Java >java教程 >Java中的堆疊類別

Java中的堆疊類別

WBOY
WBOY原創
2024-08-30 16:01:28734瀏覽

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