Java Stack sınıfı, Vector sınıfını genişletir. Yeni öğeler oluşturmanıza, yığındaki bir öğeyi görüntülemenize, yığındaki bir öğeyi güncellemenize ve yığındaki tüm öğeleri silmenize olanak tanır. Verileri ilk giren son çıkar (FILO) düzeninde istifler. Bu, yalnızca bir yığının en üstüne öğe ekleyebileceğiniz veya buradan öğe çıkarabileceğiniz anlamına gelir.

Java'da Yığınlar Nasıl Kullanılır?

Yığın veri yapısının beş temel yöntemi vardır. Ancak Java Stack sınıfı, Vector sınıfından miras aldığı 40’tan fazla başka yönteme de erişebilir.

Java’da Yığın Oluşturma

Stack sınıfı , boş bir yığın oluşturmanıza izin veren tek bir oluşturucuya sahiptir. Her Yığın, depolayacağı veri türünü belirleyen bir tür bağımsız değişkenine sahiptir.

import java.util.Stack;

public class Main {

  public static void main(String[] args) {

    // create a stack

    Stack<String> Customers = new Stack<String>();

  }

}

Yukarıdaki kod, Dize değerlerini depolayan Müşteriler adlı bir Yığın veri yapısı oluşturur.

Bir Yığın Doldurma

Stack sınıfının beş ana yönteminden biri push() yöntemidir. Yığınla aynı veri türüne sahip tek bir öğeyi alır ve bu öğeyi Yığının en üstüne iter.

// populate a stack

Customers.push(“Jane Doe”);

Customers.push(“John Doe”);

Customers.push(“Patrick Williams”);

Customers.push(“Paul Smith”);

Customers.push(“Erick Rowe”);

Customers.push(“Ella Jones”);

Customers.push(“Jessica Brown”);

Yukarıdaki kod, Müşterilerin Yığını yedi öğeyle doldurur. Her yeni öğeyi Yığının en üstüne iter. Yani, Müşteri Yığınının en üstündeki öğe Jessica Brown. Ve bunu Stack peek() yöntemini kullanarak onaylayabilirsiniz . peek() yöntemi hiçbir argüman almaz . Yığının en üstündeki nesneyi kaldırmadan döndürür.

// view object at the top of a stack

System.out.println(Customers.peek());

Yukarıdaki kod konsola aşağıdaki çıktıyı döndürür:

Jessica Brown

Bir Yığındaki Öğeleri Görüntüleyin

Yığın veri yapısı, verileriyle etkileşim kurmanıza nasıl izin verdiği konusunda oldukça kısıtlayıcıdır. Esasen en üstteki öğesi aracılığıyla bir Yığın kullanmalısınız. Ancak, rasgele öğelere erişmek için Vector sınıfından devralınan yöntemleri de kullanabilirsiniz. Bu tür yöntemler, elementAt ve removeElementAt’ı içerir.

Bir Yığın içeriğine genel bir bakış almanın en kolay yolu onu yazdırmaktır. System.out.println’ye bir Stack nesnesi iletin ve Stack’in toString() yöntemi güzel bir özet üretecektir:

// view all elements of a stack

System.out.println(Customers);

Yukarıdaki kod konsola aşağıdaki çıktıyı yazdırır:

[Jane Doe, John Doe, Patrick Williams, Paul Smith, Erick Rowe, Ella Jones, Jessica Brown]

Yığındaki Öğe Konumunu Arama

Yığındaki bir öğeyi biliyorsanız, dizin konumunu veya Yığının tepesine göre konumunu belirleyebilirsiniz. indexOf() yöntemi Yığındaki bir öğeyi alır ve dizin konumunu döndürür. Bir Yığın’ın öğelerini sıfırdan dizine eklemeye başladığını unutmayın.

// find an item index position

System.out.println(Customers.indexOf(“Jane Doe”));

Yukarıdaki kod konsola aşağıdaki çıktıyı yazdırır:

0

search() yöntemi, Stack sınıfının birincil yöntemlerinden biridir. Yığının en üstündeki öğenin bir numaralı konuma sahip olduğu yığının tepesine göre bir öğe konumu döndürür.

System.out.println(Customers.search(“Jane Doe”));

Yukarıdaki kod konsola aşağıdaki çıktıyı yazdırır:

7

search() veya indexOf() yöntemlerine Stack’te olmayan bir öğe sağlarsanız, bunlar negatif bir değer döndürür.

System.out.println(Customers.search(“Elsa Doe”));

System.out.println(Customers.indexOf(“Elsa Doe”));

Yukarıdaki kod konsola aşağıdaki çıktıyı yazdırır:

-1

-1

Yığındaki Öğeleri Güncelleme

Yalnızca Yığının en üstündeki bir öğeyi değiştirebilirsiniz. Bu nedenle, Yığının en üstünde olmayan bir öğeyi güncellemek isterseniz, onun üzerindeki tüm öğeleri açmanız gerekir. pop() yöntemi , Stack’in birincil yöntemlerinden biridir. pop() yöntemi hiçbir argüman almaz. Yığının en üstündeki öğeyi kaldırır ve geri getirir.

// update an object

Customers.pop();

Customers.pop();

Customers.push(“Ella James”);

Customers.push(“Jessica Brown”);

System.out.println(Customers);

Yukarıdaki kod konsola aşağıdaki çıktıyı yazdırır:

[Jane Doe, John Doe, Patrick Williams, Paul Smith, Erick Rowe, Ella James, Jessica Brown]

Çıktıdan da görebileceğiniz gibi, kod Ella’nın soyadını James olarak günceller. Hedef nesneye ulaşana kadar yığından öğeleri çıkaran bir süreci içerir. Daha sonra hedef nesneyi açar; günceller; ve onu, hedef öğenin üstündeki öğelerle birlikte yığına geri iter. Stack’inizdeki bir öğeyi her güncellemek istediğinizde, yukarıdaki gibi işlemler yapan bir program kullanmanız gerekecektir.

Yığından Öğe Silme

Yığın veri yapısından tek bir öğeyi silmek için yine pop() yöntemini kullanabilirsiniz. Silmek istediğiniz öğe üstte değilse, istediğiniz öğeye ulaşana kadar üstteki öğeleri patlatabilirsiniz.

Bir Yığındaki Tüm Öğeleri Silme

Yığındaki tüm öğeleri silmek için, öğeleri birer birer silmek üzere pop() yöntemiyle bir Java while döngüsü kullanabilirsiniz. Ancak daha verimli bir yaklaşım clear() yöntemini kullanmaktır. clear() yöntemi, Stack sınıfının Vector sınıfından miras aldığı bir yöntemdir . Argüman almaz, hiçbir şey döndürmez, ancak Stack veri yapısındaki tüm öğeleri kaldırır.

// delete all items in a stack

Customers.clear();

System.out.println(Customers.empty());

Yukarıdaki kod, Müşteri Yığınındaki tüm öğeleri siler. Daha sonra Stack’in boş olup olmadığını kontrol etmek için empty() yöntemini kullanır. empty() , Java Stack Sınıfının başka bir birincil yöntemidir. Bağımsız değişken almaz ve bir Boolean değeri döndürür. Bu yöntem, Yığın boşsa doğru, aksi takdirde yanlış döndürür.

Yukarıdaki kod konsola aşağıdaki çıktıyı yazdırır:

true

Yığın Veri Yapısı İçin Pratik Uygulamalar

Yığın veri yapısı çok kısıtlayıcıdır. Veri işlemede diğer veri yapıları kadar esneklik sağlamaz. Bu şu soruyu akla getiriyor: Yığın veri yapısını ne zaman kullanmalısınız?

Yığın veri yapısı, verilerin ters sırada işlenmesini gerektiren uygulamalar için idealdir. Bunlar şunları içerir:

Bir kelimenin palindrom olup olmadığını kontrol eden bir uygulama.

Ondalık sayıları ikili sayılara dönüştüren bir uygulama.

Kullanıcıların geri almasına izin veren uygulamalar.

Satranç oyunu gibi kullanıcının önceki hamlelere geri dönmesine izin veren oyunlar.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir