CodeGym /Java Blog /Acak /Java Stack 101: Mempelajari Kelas Stack
John Squirrels
Level 41
San Francisco

Java Stack 101: Mempelajari Kelas Stack

Dipublikasikan di grup Acak
Stack di Java adalah struktur data, seperti antrian, larik, daftar tertaut, atau pohon . Yang membedakannya dari yang lain adalah bahwa Java Stack didasarkan pada prinsip Last In, First Out (LIFO). Artinya adalah ketika Anda menggunakan dua perintah untuk menambah dan menghapus elemen dari tumpukan, yang pertama Anda hapus akan selalu menjadi yang terakhir Anda tambahkan. Mari kita lihat lebih dekat Kelas Java Stack

Menjelajahi Kelas Java Stack

Kelas Java Stack adalah perpanjangan dari kelas Vector , yang dengan sendirinya memperluas kelas Daftar . Karena vektor dapat berubah dan dapat tumbuh dan menyusut sesuai permintaan elemen di dalamnya, Stack s juga dapat mengubah ukuran sesuai permintaan. Ekstensi kelas Vector menambahkan lima operasi yang mengubah Vector menjadi Stack . Kelima operasi ini adalah:
  • .push(E item) – menempatkan elemen di atas tumpukan
  • .pop() – menghapus elemen di bagian atas tumpukan dan mengembalikannya sebagai nilai fungsi
  • .peek() – melihat elemen di bagian atas tumpukan tanpa menghapusnya
  • .empty() – Fungsi Boolean untuk menguji apakah stack kosong atau tidak. Mengembalikan 0 atau 1.
  • .search(Object o) – Mencari o dan mengembalikan posisinya. Nilainya berbasis 1, bukan berbasis 0
Stack juga mewarisi semua metode yang merupakan bagian dari Vector , termasuk namun tidak terbatas pada, toString() , contains() , indexOf() , dan lastElement() . Java Stack 101: Mempelajari Kelas Stack - 1

Mengkodekan Contoh Java Stack

Sekarang setelah kita mengetahui fungsi untuk Stack , mari kita buat kode contoh java stack. Stack s sangat berguna untuk menangani data yang harus disimpan sementara dan diambil dengan cepat. Karena Stack adalah LIFO, ini sangat berguna untuk traversal node saat menjelajahi struktur data pohon. Sebelum kita membahas semua itu, mari buat tumpukan dasar. Kode untuk mengimplementasikan stack adalah sebagai berikut:

import java.util.*;

class Main {
  public static void main(String[] args) {
    Stack<Integer> stackExample = new Stack<Integer>();
Itu saja yang perlu Anda lakukan untuk membuat Stack kosong . Anda juga bisa mendeklarasikannya tanpa mendeklarasikan tipe data dengan menggunakan:

Stack example = new Stack();
Ingatlah bahwa karena Stack s bisa berubah, saat kita mendorong elemen ke stack, ukurannya akan disesuaikan secara otomatis. Sekarang mari kita lihat cara menggunakan fungsi Stack .

Implementasi Tumpukan Java

Mari kita lihat cara menggunakan lima metode yang telah kita jelajahi secara singkat sebelumnya. Implementasi tumpukan Java mudah diingat jika Anda menganggapnya sebagai tumpukan piring. Anda meletakkan piring di tumpukan, tetapi untuk mendapatkan piring, Anda tidak pergi ke bawah, Anda mendapatkannya dari atas. Yang terakhir Anda pakai adalah yang pertama Anda lepas. Memperluas contoh kita sebelumnya dengan stackExample , fungsinya adalah sebagai berikut:

Dorongan


// pushing integers onto the Stack
    stackExample.push(5);
    stackExample.push(10);
Pada titik ini, kita akan menunjukkan fungsi lain seolah-olah kita telah mendorong dua bilangan bulat ini ke contoh tumpukan Java setiap saat.

Pop


//popping integers off of the Stack
System.out.println(stackExample.pop());
System.out.println(stackExample.pop());
Keluaran:

10
5

Kosong

Sekarang, katakanlah Anda ingin menghapus semua elemen dari Stack tetapi Anda tidak yakin berapa banyak elemen yang ada. Anda dapat menggabungkan fungsi Boolean.isEmpty() dengan prekondisi while loop untuk mengeluarkan semua elemen dari Stack . Lihatlah bagaimana implementasi java stack ini dilakukan.

while(!stackExample.isEmpty()) {      
  System.out.println(stackExample.pop());
}
Keluaran

10
5

Mengintip

Kita dapat menggunakan .peek() sebagai implementasi stack di Java untuk melihat item berikutnya di Stack tanpa menghapusnya.

System.out.println(stackExample.peek());
Keluaran

10
Jika kita pop dan mencetak Stack , itu akan mengembalikan 10 dan 5 karena 10 masih ada di stack. Kami hanya melihatnya, kami tidak menghapusnya dengan fungsi pop. Fungsi mengintip adalah alat yang hebat untuk Stack s di java.

Mencari

Jika kita ingin menemukan elemen tertentu, implementasi stacks di Java menggunakan .search(e); untuk menemukannya.

System.out.println(stackExample.search(5));
Keluaran

2
Ingatlah bahwa ini karena kita menghitung dari atas Stack dan Java Stack dimulai dari 1, bukan 0 seperti Array . Jadi, lihat tumpukannya, itu adalah (10) --> (5), dan 5 ada di tempat nomor 2. Jika Anda mencoba menemukan elemen yang tidak ada di Stack , Anda akan mendapatkan -1 sebagai output.

Iterasi

Saat bekerja dengan koleksi apa pun, mungkin ada saatnya Anda perlu mencari banyak elemen. Untuk menghemat kerumitan dan harus mencari melalui Stack beberapa kali, Anda dapat menggunakan iterasi. Karena Stack di Java memperluas kelas List , ada beberapa opsi untuk iterasi. Salah satu yang termudah adalah dengan menggunakan fungsi ListIterator . ListIterator bagus karena memungkinkan Anda melintasi Stack dari atas ke bawah atau dari bawah ke atas menggunakan .hasPrevious() atau .hasNext() . Begini tampilannya:

ListIterator<Integer> exampleIterator = stackExample.listIterator(stackExample.size());

  while (exampleIterator.hasPrevious()) {
    int iteration = exampleIterator.previous();
    System.out.println(iteration);
  }
Keluaran

10
5
Perlu diingat bahwa saat Anda melakukan iterasi melalui Stack s di Java, Anda tidak menghapus elemen apa pun di dalamnya. Iterasi pada dasarnya memungkinkan Anda untuk mengintip setiap elemen dalam tumpukan secara berurutan. Saat Anda melakukan ini, Anda dapat mencari lokasi di mana elemen tertentu berada dan kemudian menelusuri dan memanipulasinya. Anda dapat menghitung, menghapus, atau bahkan mengubahnya jika perlu.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION