Salom! Ushbu maqolada Java Stak haqida ma’lumot bermoqchiman. Dasurlash tillarida Stak ko’p ishlatiladigan obyekt, Java ham bundan istisno emas.
Ko’p cho’zmasdan mavzuga kirishamiz:
Java Stak
Java Stak – LIFO (Oxiridan kiritish, boshidan chiqarish) obyekti. Vektor sinfni kengaytiradi, ammo faqat beshta operatsiyani qo’llab-quvvatlaydi. Java Stak sinfida faqat bitta konstruktor mavjud bo’lib, bu bo’sh yoki standart konstruktor hisoblanadi. Shunday qilib, biz Stak yaratgandan so’ng dastlab Stak hech qanday elementga ega bo’lmaydi, bu stak bo’sh ekabligini bildiradi.
Stak ichida ko’rsatkich bor bo’ladi: Stak elementining yuqori qismini bildiruvchi, TOP. Agar Stak bo’sh bo’lsa, TOP birinchi element joyidan oldinga murojaat qiladi. Stak bo’sh bo’lmasa, TOP eng yuqori elementga ishora qilayotgan bo’ladi.
DIQQAT E’LON! Java dasturlash tillari bo’yisha video kurs tayyor. Video kurs haqidagi ma’lumotni quyidagi rasm ustiga bosib o’qishingiz mumkin:
Java Stak Klass diagrammasi
Java Stack to’g’ridan-to’g’ri Vektorli sinfni kengaytiradi va RandomAccess, List, Collection va boshqalarni bevosita amalga oshiradi. Bu LIFO ro’yxati.
Java Stak Metodlari
Java Stak, faqat quyidagi besh operatsiyani bajarish bilan Vector sinfini kengaytiradi.
- boolean empty (): Stak bo’shligini test qiladi.
- E peek (): Stakdan olib tashlamasdan, bu stakning yuqori qismidagi obyektga qaraydi.
- E pop (): Ushbu stakning yuqori qismidagi ob’ektni olib tashlaydi va ushbu funktsiyaning qiymati sifatida ushbu obyektni qaytaradi.
- E push(E element): elementni ushbu stakning tepasiga suradi.
- int search (Object o): obyekt bu qatlamda joylashgan 1-holatini qaytaradi.
Ushbu operatsiyalarni namunalar bilan o’rganib chiqamiz.
Java Stak namuna
Operatsiyani o’rganish uchun asosiy Java Stack misolini ishlab chiqish vaqti keldi.
import java.util.Stack;
public class sinf {
public static void main(String a[]){
Stack<Integer> stack = new Stack<>(); // Stak yaratish
System.out.println(«Bo’sh stak : « + stack);
System.out.println(«Bo’sh stak : « + stack.isEmpty());
stack.push(1001);
stack.push(1002);
stack.push(1003);
stack.push(1004);
System.out.println(«Bo’sh emas stak : « + stack);
System.out.println(«Bo’sh emas stak: Pop Operatsiyasi : « + stack.pop());
System.out.println(«Bo’sh emas stak : Pop Operatsiyasidan keyin : « + stack);
System.out.println(«Bo’sh emas stak : search() Operatsiyasi : « + stack.search(1002));
System.out.println(«Bo’sh emas stak : « + stack.isEmpty());
}
}
NATIJA:
Bo’sh stak : []
Bo’sh stak : true
Bo’sh emas stak : [1001, 1002, 1003, 1004]
Bo’sh emas stak: Pop Operatsiyasi : 1004
Bo’sh emas stak : Pop Operatsiyasidan keyin : [1001, 1002, 1003]
Bo’sh emas stak : search() Operatsiyasi : 2
Bo’sh emas stak : false
Stakning push () va pop () operatsiyalari qanday ishlaydi?
Stack-ning push () va pop () funktsiyalari eng ko’p ishlatiladigan Stack operatsiyalaridir. push () metodi, elementni Stak yuqorisiga qo’shish uchun ishlatiladi. pop () operatsiyasi Stak-dan yuqori elementni olib tashlaydigan metod hisoblanadi.
Stak ma’lumotlar strukturasi bitta ichki xususiyatiga ega: top stakning yuqori qismiga murojaat qiladi. Stak bo’sh bo’lsa, quyida ko’rsatilgan kabi birinchi elementdan oldindagiga murojaat qiladi:
Quyidagi diagrammada ko’rsatilgandek, Stakning push operatsiyalari doimo Stakning yuqori qismiga yangi elementni qo’shib qo’yadi.
Quyidagi diagrammada ko’rsatilganidek, Stak pop operatsiyalari doimo Stakning yuqori qismidagi elementni olib tashlaydi.
Stak hech qanday elementlarsiz bo’lsa, Stackning isEmpty () operatsiyasi false (noto’g’ri) javobni qaytaradi va boshqa holatlarda u true (rost) bo’ladi.
Stak uchun Java massiv
«Qanday qilib berilga int massiv bilan Stak obyekti yaratish» ni o’rganamiz.
import java.util.Stack;
public class sinf {
public static void main(String a[]){
Integer[] intmassiv = { 1001,1002,1003,1004};
Stack<Integer> stack = new Stack<>();
for(Integer i : intmassiv){
stack.push(i);
}
System.out.println(«Bo’sh bo’lmagan stak : « + stack);
}
}
NATIJA:
Bo’sh bo’lmagan stak : [1001, 1002, 1003, 1004]
Stak namunalariga Java list
Bu yerda «Integer List bilan Stak obyekti yaratish» nomli mavzuni o’rganamiz.
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
public class sinf {
public static void main(String a[]){
Stack<Integer> stack = new Stack<>();
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
System.out.println(» addAll Operatsiyasi : » + stack.addAll(list));
System.out.println(«Bo’sh emas stak : « + stack);
}
}
NATIJA:
addAll Operatsiyasi : true
Bo’sh emas stak : [1, 2, 3]
List bilan Java Stak
Bu yerda «Integerlar Staki bilan List obyektini yaratish» ni o’rganamiz.
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
public class sinf {
public static void main(String a[]){
Stack<Integer> stack = new Stack<>();
stack.push(1);
stack.push(2);
stack.push(3);
List<Integer> list = new ArrayList<>();
list.addAll(stack);
System.out.println(«Stak : « + stack);
System.out.println(«List : « + list);
}
}
NATIJA:
Stak : [1, 2, 3]
List : [1, 2, 3]
Bu Stakning Java-dagi tezkor versiyasi. Umid qilamanki, bu Java Stak asoslari va misollar Stak dasturiy ta’minotidan foydalanishga yordam beradi.
Maqola bo’yicha savollaringizni kommentda qoldiring va shuningdek Java dasturlash tili bo’yicha sizga kerakli bo’lgan mavzularni ham kommentda qoldirishingiz mumkin. Maqolalarimda so’rovingizni yoritishga harakat qilaman.
Shu bilan keyingi maqolada ko’rishguncha, salomat bo’ling!
Muallif: Oxunjon G’aybullayev