CodeGym/Java Blogu/Rastgele/Java Stack 101: Stack Sınıfına Girmek
John Squirrels
Seviye
San Francisco

Java Stack 101: Stack Sınıfına Girmek

grupta yayınlandı
Java'daki Yığın, bir sıra, dizi, bağlantılı liste veya ağaç gibi bir veri yapısıdır . Java Stack'in diğerlerinden farkı, Son Giren İlk Çıkar (LIFO) ilkesine dayalı olmasıdır. Bunun anlamı, yığına bir öğe eklemek ve yığından öğe çıkarmak için iki komutu kullandığınızda, ilk çıkardığınız öğe her zaman eklediğiniz son öğe olacaktır. Java Stack Sınıfına daha yakından bakalım.

Java Stack Sınıfını Keşfetmek

Java Stack Sınıfı, List sınıfını genişleten Vector sınıfının bir uzantısıdır . Vektörler değişken olduğundan ve içindeki öğelerin taleplerine göre büyüyüp küçülebildiğinden, Stack s de talep üzerine boyut değiştirebilir. Vector sınıfının uzantısı, Vector öğesini Stack öğesine dönüştüren beş işlem ekler . Bu beş işlem şunlardır:
  • .push(E item) – yığının üstüne bir eleman yerleştirir
  • .pop() – yığının en üstündeki öğeyi kaldırır ve işlevin değeri olarak döndürür
  • .peek() – yığının en üstündeki öğeye onu kaldırmadan bakar
  • .empty() – Yığının boş olup olmadığını test etmek için Boole işlevi. 0 veya 1 döndürür.
  • .search(Object o) – o'yu arar ve konumunu döndürür. Değer 1 tabanlıdır, 0 tabanlı değildir
Yığın ayrıca , toString() , include() , indexOf() ve lastElement() dahil ancak bunlarla sınırlı olmamak üzere Vector öğesinin parçası olan tüm yöntemleri miras alır . Java Stack 101: Stack Sınıfına Girmek - 1

Bir Java Yığını Örneği Kodlama

Artık Stack'in fonksiyonlarını bildiğimize göre , bir java stack örneği kodlayalım. Yığınlar , geçici olarak depolanması ve hızlı bir şekilde alınması gereken verileri işlemek için çok kullanışlıdır. Yığın LIFO olduğundan , bir ağaç veri yapısını keşfederken düğüm geçişi için son derece yararlıdır. Tüm bunlara girmeden önce, temel bir yığın oluşturalım. Bir yığını uygulamak için kod aşağıdaki gibidir:
import java.util.*;

class Main {
  public static void main(String[] args) {
    Stack<Integer> stackExample = new Stack<Integer>();
Boş bir Stack oluşturmak için yapmanız gereken tek şey bu . Ayrıca, aşağıdakileri kullanarak bir veri türü bildirmeden basitçe bildirebilirsiniz:
Stack example = new Stack();
Yığın değişken olduğundan , öğeleri yığına ittiğimizde boyutunun otomatik olarak ayarlanacağını unutmayın. Şimdi Stack fonksiyonlarının nasıl kullanılacağına bakalım .

Java Yığın Uygulaması

Daha önce kısaca incelediğimiz beş yöntemin nasıl kullanılacağına bakalım. Java yığın uygulamasını bir yığın levha olarak düşünürseniz hatırlaması kolaydır. Tabakları istifin üzerine koyuyorsunuz ama bir tabak almak için en alta inmiyorsunuz, bir tane üstten alıyorsunuz. En son giydiğin, ilk çıkardığındır. Önceki örneğimizi stackExample ile genişleterek , işlevler aşağıdaki gibidir:

İtmek

// pushing integers onto the Stack
    stackExample.push(5);
    stackExample.push(10);
Bu noktada Java stack örneğine her seferinde bu iki tamsayıyı itmişiz gibi diğer fonksiyonları göstereceğiz.

Pop

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

Boş

Şimdi, bir Yığın'daki tüm öğeleri kaldırmak istediğinizi ancak kaç öğe olduğundan emin olmadığınızı varsayalım. Stack'teki tüm öğeleri çıkarmak için Boolean.isEmpty() işlevini bir önkoşul while döngüsüyle birleştirebilirsiniz . Bu java yığını uygulamasının nasıl yapıldığına bakın.
while(!stackExample.isEmpty()) {
  System.out.println(stackExample.pop());
}
Çıktı
10
5

Dikizlemek

Yığındaki bir sonraki öğeyi kaldırmadan bir göz atmak için Java'da yığın uygulaması olarak .peek()' i kullanabiliriz .
System.out.println(stackExample.peek());
Çıktı
10
Stack'i açar ve yazdırırsak , 10 ve 5 döndürür çünkü 10 hala yığındadır. Biz sadece baktık pop fonksiyonu ile kaldırmadık. Gözetleme işlevi, Java'da Stack s için harika bir araçtır .

Aramak

Belirli bir öğeyi bulmak istiyorsak, Java'daki yığınlar uygulaması .search(e) kullanır; onu bulmak için
System.out.println(stackExample.search(5));
Çıktı
2
Bunun, Stack'in tepesinden saymamız ve Java Stack'in Array gibi 0'dan değil 1'den başlamasından kaynaklandığını unutmayın . Yani yığına bakıldığında, (10) --> (5) ve 5, 2 numaralı noktada. Stack içinde olmayan bir öğe bulmaya çalışırsanız , çıktı olarak -1 alırsınız.

Yineleniyor

Herhangi bir koleksiyonla çalışırken, birden çok öğe aramanız gereken zamanlar olabilir. Karmaşıklıktan kurtulmak ve Yığın içinde birden çok kez arama yapmak zorunda kalmak için yinelemeyi kullanabilirsiniz. Java'daki Stack , List sınıfını genişlettiğinden , yineleme için birkaç seçenek vardır. En kolaylarından biri, yalnızca ListIterator işlevini kullanmaktır . ListIterator, .hasPrevious() veya .hasNext() kullanarak bir Yığını yukarıdan aşağıya veya aşağıdan yukarıya dolaşmanıza izin vermesi bakımından güzeldir . İşte nasıl göründüğü:
ListIterator<Integer> exampleIterator = stackExample.listIterator(stackExample.size());

  while (exampleIterator.hasPrevious()) {
    int iteration = exampleIterator.previous();
    System.out.println(iteration);
  }
Çıktı
10
5
Java'da Stack s ile yineleme yaptığınızda, içindeki hiçbir öğeyi kaldırmadığınızı unutmayın . Yineleme, temelde yığındaki her öğeye sırayla göz atmanıza olanak tanır. Bunu yaptığınızda, belirli öğelerin bulunduğu yerleri arayabilir ve ardından bunları inceleyip manipüle edebilirsiniz. Bunları sayabilir, silebilir ve hatta gerekirse değiştirebilirsiniz.
Yorumlar
  • Popüler
  • Yeni
  • Eskimiş
Yorum bırakmak için giriş yapmalısınız
Bu sayfada henüz yorum yok