Stack sınıfı nesnelerin LIFO (last-input-first-output) yapısıyla depolanmasını sağlayan bir veri tipidir. Yani nesnelerinizin üst üste depolandığını varsayarsanız ilk nesneniz altta , eklediğiniz yeni nesneler onun üstüne şeklinde devam eden bir yapısı vardır . Örnek vermek gerekirse android telefonlarda açılan uygulamalar yığın yapısıyla depolanır . Açık kalan uygulamalarınız geri tuşuna bastıkça yığının en üstündeki yani kullandığınız bir önceki uygulamaya geçerek devam eder .
Stack sınıf içinde 5 tane method bulunmaktadır .
Stack sınıf içinde 5 tane method bulunmaktadır .
- E peek() : Yığının en üstündeki nesneyi gönderir .
- E pop() : Yığının en üstündeki nesneyi gönderir . Peek den farkı burada öğe silinir , peek de silinmez göstermek amaçlı kullanılır .
- E push(E item) : Gelen nesneyi yığının en üstüne koyar .
- int search(Object o) : Verilen nesnenin yığında kaçıncı sırada olduğunu söyler . Saymaya son girenden başlar . Değer yoksa -1 gönderir .
- boolean empty() : Yığının boş olup olmadığını kontrol eder.
Aşağıda daha açıklayıcı olması açısından basit bir örnek yapılmıştır .
import java.util.Stack;
public class Driver {
public static void main(String[] args) {
// stack sınıfından instance alındı
Stack stack = new Stack<>();
// initialize methodu çağrıldı ve push methoduyla yığın dolduruldu
initialize(stack);
// peek = en üstteki nesneyi bul
stack.peek();
String peek = stack.peek();
System.out.print("\n En Tepede "+peek);
printStack(stack);
stack.pop();
printStack(stack);
// search = nesnenin sırasını bul
System.out.println(stack.search("D"));
System.out.println(stack.search("L"));
}
public static void initialize(Stack stack) {
//push = yığına nesne ekle
stack.push("A");
printStack(stack);
stack.push("B");
printStack(stack);
stack.push("C");
printStack(stack);
stack.push("D");
printStack(stack);
stack.push("E");
printStack(stack);
}
private static void printStack(Stack stack) {
// isEmpty = yığın boş mu kontrol et
if(!stack.isEmpty())
System.out.printf("\n%s ",stack);
}
}
[A]
[A, B]
[A, B, C]
[A, B, C, D]
[A, B, C, D, E]
En Tepede E
[A, B, C, D, E]
[A, B, C, D]
1
-1