CodeGym /Blog Jawa /Acak /Java Stack 101: Delving menyang Kelas Stack
John Squirrels
tingkat
San Francisco

Java Stack 101: Delving menyang Kelas Stack

Diterbitake ing grup
Tumpukan ing Jawa minangka struktur data, kaya antrian, larik, dhaptar sing disambung, utawa wit . Endi sing beda karo liyane yaiku Java Stack adhedhasar prinsip Last In, First Out (LIFO). Apa tegese yen sampeyan nggunakake rong printah kasebut kanggo nambah lan mbusak unsur saka tumpukan, sing pertama sing dibusak bakal dadi sing pungkasan sing ditambahake. Ayo ndeleng kanthi luwih cetha babagan Kelas Tumpukan Jawa

Njelajah Kelas Tumpukan Jawa

Java Stack Class minangka extension saka kelas Vector , sing ngluwihi kelas List . Amarga vektor sing mutable lan bisa tuwuh lan nyilikake karo panjaluk saka unsur nang, Stack s uga bisa ngganti ukuran ing dikarepake. Ekstensi kelas Vektor nambahake limang operasi sing ngowahi Vektor dadi Stack . Lima operasi kasebut yaiku:
  • .push (E item) - panggonan unsur menyang ndhuwur tumpukan
  • .pop () - mbusak unsur ing ndhuwur tumpukan lan bali minangka Nilai saka fungsi
  • .peek () - katon ing unsur ing ndhuwur tumpukan tanpa njabut
  • .kosong () - fungsi Boolean kanggo test yen tumpukan kosong utawa ora. Ngasilake 0 utawa 1.
  • .search (Obyek o) - Nggoleki o lan bali posisi. Nilai kasebut adhedhasar 1, ora adhedhasar 0
Stack uga marisi kabeh cara sing dadi bagéan saka Vector , kalebu nanging ora winates kanggo, toString () , ngandhut () , indexOf () , lan lastElement () . Java Stack 101: Delving menyang Stack Class - 1

Tuladha Coding Java Stack

Saiki kita ngerti fungsi kanggo Stack , ayo kode conto tumpukan java. Tumpukan s banget migunani kanggo nangani data sing kudu disimpen sementara lan dijupuk cepet. Amarga Stack iku LIFO, iku migunani banget kanggo traversal simpul nalika njelajah struktur data wit. Sadurunge kita mlebu kabeh, ayo nggawe tumpukan dhasar. Kode kanggo ngleksanakake tumpukan kaya ing ngisor iki:

import java.util.*;

class Main {
  public static void main(String[] args) {
    Stack<Integer> stackExample = new Stack<Integer>();
Iku kabeh sing perlu kanggo nggawe Stack kosong . Sampeyan uga bisa ngumumake kanthi gampang tanpa nyatakake jinis data kanthi nggunakake:

Stack example = new Stack();
Elinga yen Stack s bisa diganti, nalika kita push unsur menyang tumpukan, bakal kanthi otomatis nyetel ukuran. Saiki ayo goleki carane nggunakake fungsi Stack .

Implementasi Java Stack

Ayo goleki carane nggunakake limang cara sing wis diteliti sadurunge. implementasine tumpukan Jawa gampang kanggo elinga yen sampeyan mikir minangka tumpukan piring. Sampeyan sijine piring menyang tumpukan, nanging kanggo njaluk piring, sampeyan ora pindhah menyang ngisor, sampeyan njaluk siji saka ndhuwur. Sing terakhir sing sampeyan pasang yaiku sing pertama sampeyan copot. Ngluwihi conto sadurunge karo stackExample , fungsi kasebut kaya ing ngisor iki:

Push


// pushing integers onto the Stack
    stackExample.push(5);
    stackExample.push(10);
Ing titik iki, kita bakal nuduhake fungsi liyane kaya-kaya wis nyurung rong integer iki menyang conto tumpukan Jawa saben wektu.

Pop


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

10
5

Kosong

Saiki, ayo ngomong yen sampeyan pengin mbusak kabeh unsur saka Stack nanging sampeyan ora yakin carane akeh unsur sing ana. Sampeyan bisa nggabungake fungsi Boolean.isEmpty () karo precondition while loop kanggo pop kabeh unsur saka Stack . Deleng carane implementasi tumpukan java iki rampung.

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

10
5

ngintip

Kita bisa nggunakake .peek () minangka implementasine tumpukan ing Jawa kanggo dipikir ing item sabanjuré ing Stack tanpa njabut.

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

10
Yen kita pop lan print Stack , bakal bali 10 lan 5 amarga 10 isih ing tumpukan. Kita mung katon ing, kita ora mbusak karo fungsi pop. Fungsi ngintip minangka alat sing apik kanggo Stack s ing java.

Nggoleki

Yen kita pengin nemokake unsur tartamtu, implementasine tumpukan ing Jawa nggunakake .search (e); kanggo nggoleki.

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

2
Elinga yen iki amarga kita ngetung saka ndhuwur Stack lan Java Stack s diwiwiti ing 1, ora 0 kaya Array . Dadi, ndeleng tumpukan kasebut, yaiku (10) --> (5), lan 5 ana ing titik nomer 2. Yen sampeyan nyoba nemokake unsur sing ora ana ing Stack , sampeyan bakal entuk -1 minangka output.

Iterating

Nalika nggarap koleksi apa wae, bisa uga ana wektu nalika sampeyan kudu nggoleki macem-macem unsur. Kanggo nyimpen kerumitan lan kudu nelusuri liwat Stack kaping pirang-pirang, sampeyan bisa nggunakake iterasi. Amarga Stack in Java ngluwihi kelas List , ana sawetara opsi kanggo iterasi. Salah siji sing paling gampang yaiku nggunakake fungsi ListIterator . ListIterator apik amarga ngidini sampeyan ngliwati Stack saka ndhuwur menyang ngisor utawa saka ngisor menyang ndhuwur nggunakake .hasPrevious () utawa .hasNext () . Mangkene carane katon:

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

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

10
5
Tetep wonten ing pikiran sing nalika sampeyan iterate liwat Stack s ing Jawa, sampeyan ora mbusak unsur ing. Iterating ateges ngijini sampeyan kanggo Ndeleng ing saben unsur ing tumpukan supaya. Yen sampeyan nindakake iki, sampeyan bisa nggoleki lokasi ing ngendi ana unsur-unsur tartamtu lan banjur ngolah lan ngapusi. Sampeyan bisa ngetung, mbusak, utawa malah ngganti yen perlu.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION