Stack Dasar
Stack adalah struktur data linier yang digunakan untuk menyimpan kumpulan objek. Ini didasarkan pada Last-In-First-Out (LIFO). Kerangka koleksi Java menyediakan banyak antarmuka dan kelas untuk menyimpan koleksi objek. Salah satunya adalah kelas Stack yang menyediakan operasi berbeda seperti push, pop, search, dll. Pada bagian ini, kita akan membahas kelas Java Stack, metodenya, dan mengimplementasikan struktur data stack dalam program Java. Tetapi sebelum pindah ke kelas Java Stack, lihat sekilas cara kerja stack.
Struktur data stack memiliki dua operasi terpenting yaitu push dan pop. Operasi dorong memasukkan elemen ke dalam stack dan operasi pop menghapus elemen dari atas stack. Mari kita lihat cara kerjanya di stack.
Stack mendefisikan 5 metode, yaitu :
- Pop : Untuk menghapus data teratas
- Push : Untuk memasukan data teratas
- Peek : Untuk mengetahui data teratas pada stack
- Clear : Untuk menghapus semua data pada stack
- Count : Untuk mengetahui banyak data
Implementasi Stack
- import java.util.ArrayList;
- import java.util.List;
- public class ProductStack {
- private List<Object> list = new ArrayList<Object>();
- private int currentIndex = -1;
- public void push(Object object) {
- list.add(object);
- currentIndex++;
- }
- public Object pop(){
- Object object = list.remove(currentIndex);
- currentIndex--;
- return object;
- }
- public int count() {
- return list.size();
- }
- public Object peek(){
- return list.get(currentIndex);
- }
- public void clear(){
- list.clear();
- currentIndex = -1;
- }
- }
- public class ProductApp {
- public static void main(String[] args) {
- ProductStack newStack = new ProductStack();
- newStack.push("Tas");
- newStack.push("Sepatu");
- newStack.push("Baju");
- newStack.push("Celana");
- System.out.println("Jumlah data pada UserStack: " + newStack.count());
- System.out.println("Data teratas pada userStact: " + newStack.peek());
- System.out.println("==================================");
- System.out.println("User yg dikeluarkan (Pop): " + newStack.pop());
- System.out.println("Jumlah data setalah Pop: " + newStack.count());
- System.out.println("Data teratas setelah Pop: " + newStack.peek());
- }
- }
Output
Komentar
Posting Komentar