Okhunjon Gaibullayev's blog

Java dasturlash tilida Stak obyekti!!!

Stak, stack nima


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: 

javani o`rganishning oson yo`llari

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 StackJava Stak Metodlari

Java Stak, faqat quyidagi besh operatsiyani bajarish bilan Vector sinfini kengaytiradi.

  1. boolean empty (): Stak bo’shligini test qiladi.
  2. E peek (): Stakdan olib tashlamasdan, bu stakning yuqori qismidagi obyektga qaraydi.
  3. E pop (): Ushbu stakning yuqori qismidagi ob’ektni olib tashlaydi va ushbu funktsiyaning qiymati sifatida ushbu obyektni qaytaradi.
  4. E push(E element): elementni ushbu stakning tepasiga suradi.
  5. 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:

Java Stack bo'sh

Quyidagi diagrammada ko’rsatilgandek, Stakning push operatsiyalari doimo Stakning yuqori qismiga yangi elementni qo’shib qo’yadi.

Java stack push operatsiyasi

Quyidagi diagrammada ko’rsatilganidek, Stak pop operatsiyalari doimo Stakning yuqori qismidagi elementni olib tashlaydi.

Java stack pop operatsiyasi

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

Рейтинг
( No ratings yet )
Oxunjon G'aybullayev/ author of the article
Понравился этот пост? Поделись с друзьями:
Fikr bildirish

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: