CodeGym/Blog Java/rawak/Java Stack 101: Menyelidiki Kelas Tindanan
John Squirrels
Tahap
San Francisco

Java Stack 101: Menyelidiki Kelas Tindanan

Diterbitkan dalam kumpulan
Stack dalam Java ialah struktur data, sama seperti baris gilir, tatasusunan, senarai terpaut atau pepohon . Di mana ia berbeza daripada yang lain ialah Java Stack adalah berdasarkan prinsip Last In, First Out (LIFO). Maksudnya ialah apabila anda menggunakan dua arahan untuk menambah dan mengalih keluar elemen daripada timbunan, yang pertama yang anda alih keluar akan sentiasa menjadi yang terakhir yang anda tambahkan. Mari kita lihat lebih dekat pada Java Stack Class

Meneroka Kelas Timbunan Java

Kelas Timbunan Java ialah lanjutan daripada kelas Vektor , yang dengan sendirinya memanjangkan kelas Senarai . Oleh kerana vektor boleh berubah dan boleh berkembang serta mengecut dengan permintaan elemen di dalamnya, Stack s juga boleh menukar saiz atas permintaan. Sambungan kelas Vektor menambah lima operasi yang mengubah Vektor menjadi Tindanan . Lima operasi ini ialah:
  • .push(E item) – meletakkan elemen pada bahagian atas tindanan
  • .pop() – mengalih keluar elemen di bahagian atas tindanan dan mengembalikannya sebagai nilai fungsi
  • .peek() – melihat elemen di bahagian atas timbunan tanpa mengalihkannya
  • .empty() – Fungsi Boolean untuk menguji sama ada timbunan kosong atau tidak. Mengembalikan 0 atau 1.
  • .search(Objek o) – Mencari o dan mengembalikan kedudukannya. Nilai adalah berasaskan 1, bukan berasaskan 0
Stack juga mewarisi semua kaedah yang merupakan sebahagian daripada Vector , termasuk tetapi tidak terhad kepada, toString() , contains() , indexOf() , dan lastElement() . Java Stack 101: Menyelidiki Kelas Tindanan - 1

Mengekodkan Contoh Timbunan Java

Sekarang setelah kita mengetahui fungsi untuk Stack , mari kita kodkan contoh timbunan java. Stack s sangat berguna untuk mengendalikan data yang mesti disimpan sementara dan diambil semula dengan cepat. Oleh kerana Tindanan ialah LIFO, ia amat berguna untuk traversal nod apabila meneroka struktur data pokok. Sebelum kita masuk ke dalam semua itu, mari kita buat timbunan asas. Kod untuk melaksanakan tindanan adalah seperti berikut:
import java.util.*;

class Main {
  public static void main(String[] args) {
    Stack<Integer> stackExample = new Stack<Integer>();
Itu sahaja yang anda perlu lakukan untuk mencipta Stack kosong . Anda juga boleh mengisytiharkannya secara ringkas tanpa mengisytiharkan jenis data dengan menggunakan:
Stack example = new Stack();
Ingat bahawa kerana Tindanan s boleh berubah, semasa kita menolak elemen ke dalam tindanan, ia akan melaraskan saiz secara automatik. Sekarang mari kita lihat cara menggunakan fungsi Stack .

Pelaksanaan Timbunan Java

Mari kita lihat cara menggunakan lima kaedah yang kita terokai secara ringkas sebelum ini. Pelaksanaan timbunan Java mudah diingat jika anda menganggapnya sebagai timbunan plat. Anda meletakkan pinggan pada timbunan, tetapi untuk mendapatkan pinggan, anda tidak pergi ke bawah, anda mendapat satu dari atas. Yang terakhir anda pakai ialah yang pertama anda tanggalkan. Memperluas contoh terdahulu kami dengan stackExample , fungsinya adalah seperti berikut:

Tolak

// pushing integers onto the Stack
    stackExample.push(5);
    stackExample.push(10);
Pada ketika ini, kami akan menunjukkan fungsi lain seolah-olah kami telah menolak kedua-dua integer ini ke contoh tindanan Java setiap kali.

Pop

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

Kosong

Sekarang, katakan anda ingin mengalih keluar semua elemen daripada Tindanan tetapi anda tidak pasti berapa banyak elemen yang ada. Anda boleh menggabungkan fungsi Boolean.isEmpty() dengan gelung semasa prasyarat untuk mengeluarkan semua elemen daripada Stack . Lihat bagaimana pelaksanaan timbunan java ini dilakukan.
while(!stackExample.isEmpty()) {
  System.out.println(stackExample.pop());
}
Pengeluaran
10
5

jenguk

Kita boleh menggunakan .peek() sebagai pelaksanaan tindanan dalam Java untuk melihat item seterusnya pada Tindanan tanpa mengalih keluarnya.
System.out.println(stackExample.peek());
Pengeluaran
10
Jika kita pop dan mencetak Stack , ia akan mengembalikan 10 dan 5 kerana 10 masih dalam tindanan. Kami hanya melihatnya, kami tidak mengeluarkannya dengan fungsi pop. Fungsi peek ialah alat yang hebat untuk Stack s dalam java.

Cari

Jika kita ingin mencari elemen tertentu, pelaksanaan tindanan dalam Java menggunakan .search(e); untuk mencarinya.
System.out.println(stackExample.search(5));
Pengeluaran
2
Ingat bahawa ini adalah kerana kita mengira dari bahagian atas Stack dan Java Stack bermula pada 1, bukan 0 seperti Array . Jadi, melihat timbunan, ia adalah (10) --> (5), dan 5 berada di tempat nombor 2. Jika anda cuba mencari elemen yang tiada dalam Stack , anda akan mendapat -1 sebagai output.

Berulang kali

Apabila bekerja dengan mana-mana koleksi, mungkin ada masa anda perlu mencari berbilang elemen. Untuk menjimatkan kerumitan dan perlu mencari melalui Tindanan beberapa kali, anda boleh menggunakan lelaran. Oleh kerana Stack dalam Java memanjangkan kelas Senarai , terdapat beberapa pilihan untuk lelaran. Salah satu yang paling mudah ialah hanya menggunakan fungsi ListIterator . ListIterator bagus kerana ia membolehkan anda melintasi Tindanan dari atas ke bawah atau dari bawah ke atas menggunakan .hasPrevious() atau .hasNext() . Begini rupanya:
ListIterator<Integer> exampleIterator = stackExample.listIterator(stackExample.size());

  while (exampleIterator.hasPrevious()) {
    int iteration = exampleIterator.previous();
    System.out.println(iteration);
  }
Pengeluaran
10
5
Perlu diingat bahawa apabila anda beralih melalui Stack s dalam Java, anda tidak mengalih keluar sebarang elemen di dalamnya. Lelaran pada asasnya membolehkan anda mengintip setiap elemen dalam timbunan mengikut urutan. Apabila anda melakukan ini, anda boleh mencari lokasi di mana elemen tertentu berada dan kemudian melalui dan memanipulasinya. Anda boleh mengira, memadam atau menukarnya jika perlu.
Komen
  • Popular
  • Baru
  • Tua
Anda mesti log masuk untuk meninggalkan ulasan
Halaman ini tidak mempunyai sebarang ulasan lagi