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. Yığınlar, verileri ilk giren son çıkar (FILO) düzeninde işler. Bu, yalnızca bir yığının üstüne öğe ekleyebileceğiniz veya kaldırabileceğiniz anlamına gelir.
Yığın veri yapısının beş ana yöntemi vardır. Bununla birlikte, Java Stack sınıfı, Vector sınıfından miras aldığı 40'ın üzerinde başka yönteme de erişime sahiptir.
Java'da Yığın Oluşturma
Yığın sınıfı tek bir kurucu var boş bir yığın oluşturmanıza olanak tanır. Her Yığın, depolayacağı veri türünü belirleyen bir tür bağımsız değişkenine sahiptir.
içe aktarmak java.util. Yığın;
halka açıksınıfAna{
halka açıkstatikgeçersizana(String[] argümanları){
// bir yığın oluştur
YığınMüşteriler = yeni Yığın ();
}
}
Yukarıdaki kod, adında bir Yığın veri yapısı oluşturur. müşteriler String değerlerini saklar.
Yığın doldurma
Stack sınıfının beş birincil yönteminden biri,
itmek() yöntem. Yığınla aynı veri türüne sahip tek bir öğeyi alır ve bu öğeyi Yığının en üstüne iter.// bir yığın doldur
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üşteri Yığınını yedi öğeyle doldurur. Her yeni öğeyi Yığının en üstüne iter. Yani, Müşteriler Yığınının en üstündeki öğe Jessica Brown. Ve bunu Yığını kullanarak onaylayabilirsiniz. dikizlemek() yöntem. bu dikizlemek() yöntem argüman almaz. Yığının üstündeki nesneyi kaldırmadan döndürür.
// bir yığının üstündeki nesneyi görüntüle
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üle
Yığın veri yapısı, verileriyle etkileşim kurmanıza nasıl izin verdiği konusunda oldukça kısıtlayıcıdır. Esas olarak 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 arasında elementAt ve removeElementAt bulunur.
Bir Yığın içeriğine genel bir bakış elde etmenin en kolay yolu, onu yazdırmaktır. Bir Stack nesnesini şuraya iletin: System.out.println ve Stack'in toString() yöntemi güzel bir özet üretecektir:
// bir yığının tüm öğelerini görüntüle
System.out.println (Müşteriler);
Yukarıdaki kod, aşağıdaki çıktıyı konsola yazdırır:
[Jane Doe, John Doe, Patrick Williams, Paul Smith, Erick Rowe, Ella Jones, Jessica Brown]
Yığında Öğe Konumunu Arama
Yığındaki bir öğeyi biliyorsanız, dizin konumunu veya Yığının tepesine göre konumunu belirleyebilirsiniz. bu indeksi() yöntem, Yığındaki bir öğeyi alır ve dizin konumunu döndürür. Bir Yığın, öğelerini sıfırdan endekslemeye başladığını unutmayın.
// bir öğe dizin konumu bul
System.out.println (Customers.indexOf("Jane Doe"));
Yukarıdaki kod, aşağıdaki çıktıyı konsola yazdırır:
0
bu arama() method, 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 en üstüne göre bir öğe konumu döndürür.
System.out.println (Customers.search("Jane Doe"));
Yukarıdaki kod, aşağıdaki çıktıyı konsola yazdırır:
7
tedarik ederseniz arama() ya da indeksi() Yığında olmayan bir öğeye sahip yöntemler, negatif bir tane döndürür.
System.out.println (Customers.search("Elsa Doe"));
System.out.println (Customers.indexOf("Elsa Doe"));
Yukarıdaki kod, aşağıdaki çıktıyı konsola yazdırır:
-1
-1
Bir Yığındaki Öğeleri Güncelleme
Yalnızca bir Yığının üstündeki bir öğeyi değiştirebilirsiniz. Bu nedenle, Yığının en üstünde olmayan bir öğeyi güncellemek istiyorsanız, üzerindeki tüm öğeleri açmanız gerekir. bu pop() yöntemi, Stack'in birincil yöntemlerinden biridir. bu pop() yöntem argüman almaz. Yığının en üstündeki öğeyi kaldırır ve geri döndürür.
// bir nesneyi güncelle
Müşteriler.pop();
Müşteriler.pop();
Customers.push("Ella James");
Customers.push("Jessica Brown");
System.out.println (Müşteriler);
Yukarıdaki kod, aşağıdaki çıktıyı konsola 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üncelliyor. Hedef nesneye ulaşana kadar öğeleri yığından çıkaran bir süreci içerir. Ardından hedef nesneyi açar; günceller; ve onu, hedef öğenin üstündeki öğelerle birlikte yığına geri iter. Yığınınızdaki bir öğeyi her güncellemek istediğinizde, yukarıdaki gibi işlemleri gerçekleştiren bir program kullanmanız gerekecektir.
Yığından Bir Öğe Silme
Yığın veri yapısından tek bir öğeyi silmek için tekrar pop() yöntemini kullanabilirsiniz. Silmek istediğiniz öğe üstte değilse, istediğiniz öğeye ulaşana kadar üstteki öğeleri açabilirsiniz.
Bir Yığındaki Tüm Öğeleri Silme
Bir Yığındaki tüm öğeleri silmek için bir Java while döngüsü öğeleri birer birer silmek için pop() yöntemiyle. Bununla birlikte, daha verimli bir yaklaşım, açık() yöntem. bu açık() yöntem, Stack sınıfının Vector sınıfından miras aldığı yöntemdir. Hiçbir argüman almaz, hiçbir şey döndürmez, ancak sadece Stack veri yapısındaki tüm öğeleri kaldırır.
// bir yığındaki tüm öğeleri sil
Müşteriler.clear();
System.out.println (Customers.empty());
Yukarıdaki kod, Müşteriler Yığınındaki tüm öğeleri siler. Daha sonra kullanır boş() Yığının boş olup olmadığını kontrol etme yöntemi. bu boş() Java Yığın Sınıfının başka bir birincil yöntemidir. Argüman almaz ve bir Boole değeri döndürür. Bu yöntem, Yığın boşsa true, aksi takdirde false döndürür.
Yukarıdaki kod, aşağıdaki çıktıyı konsola yazdırır:
doğru
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ı, ters sırada veri işleme 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.