CodeGym /جاوا بلاگ /Random-UR /مثال کے ساتھ جاوا میں قطار پول() طریقہ
John Squirrels
سطح
San Francisco

مثال کے ساتھ جاوا میں قطار پول() طریقہ

گروپ میں شائع ہوا۔

ایک قطار کیا ہے؟

بالکل اسی طرح جیسے نام سے ظاہر ہوتا ہے، Queue Java میں ایک عام ڈیٹا ڈھانچہ ہے جس کے بعد First In First Out (FIFO) داخل کرنے کا حکم ہے ۔ آپ آسانی سے اسے گروسری اسٹور پر قطار کے طور پر تصور کرسکتے ہیں۔ جتنی جلدی آپ داخل ہوں گے، اتنی ہی جلدی نکلیں گے۔ اس کا مطلب ہے کہ جو عنصر پہلے قطار میں شامل کیا گیا تھا وہ بھی پہلے سے نکل جائے گا۔ قطار کے پہلے عنصر (سامنے) کو ہیڈ بھی کہا جاتا ہے ۔جاوا میں قطار پول () طریقہ مثال کے ساتھ - 2
تصویر 1.0: جاوا میں ایک سادہ قطار

قطار کا پول () طریقہ کیا ہے؟

پول () طریقہ آپ کو قطار کے سب سے اوپر والے عنصر (سر) کو بازیافت اور ہٹانے کی اجازت دیتا ہے۔ ہماری مثال میں، جب آپ مندرجہ بالا قطار میں poll() کو کال کرتے ہیں، تو آپ کو نتیجہ کے طور پر '1' موصول ہوگا۔ اور قطار میں صرف 4 عناصر باقی ہوں گے۔جاوا میں قطار پول () طریقہ مثال کے ساتھ - 3
تصویر 1.1: قطار میں پول() طریقہ استعمال کرنے کے بعد

جاوا میں پول () طریقہ

مثال 1

تصویر 1.0 میں دکھائے گئے قطار پر پول () فنکشن کو کال کرنے کی ایک سادہ مثال پر ایک نظر ڈالیں ۔
import java.util.LinkedList;
import java.util.Queue;

public class QueuePollMethod {

	public static void main(String[] args) {

	  // create a queue of die rolls
        Queue dieRoll   = new LinkedList();

        // Add 6 integers one by one
        dieRoll.add(1);
        dieRoll.add(2);
        dieRoll.add(3);
        dieRoll.add(4);
        dieRoll.add(5);
        dieRoll.add(6);

        // print the original queue
        System.out.println("Queue:\t" + dieRoll + "\n");

        // after calling poll()
        System.out.println("poll() returned : " + dieRoll.poll());
        System.out.println("Queue Updated!\t" + dieRoll + "\n");

        // after calling poll()
        System.out.println("poll() returned : " + dieRoll.poll());
        System.out.println("Queue Updated!\t" + dieRoll + "\n");

        // after calling poll()
        System.out.println("poll() returned : " + dieRoll.poll());
        System.out.println("Queue Updated!\t" + dieRoll + "\n");
	}
}
آؤٹ پٹ
قطار: [1, 2, 3, 4, 5, 6] پول() واپس آیا: 1 قطار کو اپ ڈیٹ کیا گیا! [2, 3, 4, 5, 6] پول() واپس آیا: 2 قطار کو اپ ڈیٹ کیا گیا! [3, 4, 5, 6] پول() واپس آیا: 3 قطار کو اپ ڈیٹ کیا گیا! [4، 5، 6]
براہ کرم نوٹ کریں کہ کس طرح ہر پول () کے بعد قطار کے کال سائز کو 1 تک کم کیا جاتا ہے اور سر واپس کیا جاتا ہے۔

مثال 2

آئیے ہفتے میں دنوں کی ایک اور مثال دیکھیں۔ ہم ہفتے کے دنوں میں ایک ایک کرکے poll() کو کال کریں گے اور دیکھیں گے کہ یہ کیسا لگتا ہے۔
import java.util.LinkedList;
import java.util.Queue;

public class QueuePollMethod {

	public static void main(String[] args) {

        Queue days   = new LinkedList();

        days.add("Sunday");
        days.add("Monday");
        days.add("Tuesday");
        days.add("Wednesday");
        days.add("Thursday");
        days.add("Friday");
        days.add("Saturday");

        // print all the days in the week
        System.out.println("Week Days: \t" + days + "\n");

        // after calling poll()
        System.out.println("poll() returned: " + days.poll());
        System.out.println("Days Updated!\t" + days + "\n");

        // after calling poll()
        System.out.println("poll() returned: " + days.poll());
        System.out.println("Days Updated!\t" + days + "\n");

        // after calling poll()
        System.out.println("poll() returned: " + days.poll());
        System.out.println("Days Updated!\t" + days + "\n");
	}
}
آؤٹ پٹ
ہفتے کے دن: [اتوار، سوموار، منگل، بدھ، جمعرات، جمعہ، ہفتہ] پول () واپس آیا: اتوار کے دن اپ ڈیٹ! [پیر، منگل، بدھ، جمعرات، جمعہ، ہفتہ] پول () واپس آ گیا: پیر کے دن اپ ڈیٹ ہو گئے! [منگل، بدھ، جمعرات، جمعہ، ہفتہ] پول () واپس آیا: منگل کے دن اپ ڈیٹ! [بدھ، جمعرات، جمعہ، ہفتہ]

poll() peek() اور remove() سے کیسے مختلف ہے؟

ابتدائی افراد کے لیے تین مختلف تصورات کو آپس میں ملانا بہت آسان ہے کیونکہ وہ کافی ایک جیسے نظر آتے ہیں۔ آئیے "q" ایک قطار بنیں، پھر یہ ہے کہ وہ کیسے مختلف ہیں:
  • q.poll() : قطار کے سر کو ہٹاتا اور بازیافت کرتا ہے۔
  • q.peek() : ہٹاتا نہیں ہے بلکہ صرف قطار کے سر کو بازیافت/واپس کرتا ہے
  • q.remove() : قطار کے سر کو ہٹاتا اور بازیافت کرتا ہے۔
تو ایسا لگتا ہے کہ remove() اور poll() بالکل ایک جیسے ہیں۔ وہ عام حالات میں یکساں طور پر کام کرتے ہیں۔ لیکن جب قطار خالی ہو تو، remove() پھینک دیتا ہے NoSuchElementException ، جبکہ پول واپس آتا ہے null ۔

مثال 3

اب آئیے مندرجہ بالا تین افعال کی چند مثالوں پر ایک سرسری نظر ڈالتے ہیں۔
import java.util.LinkedList;
import java.util.Queue;

public class QueuePollMethod {

	public static void main(String[] args) {

        Queue days   = new LinkedList();

        days.add("Sunday");
        days.add("Monday");
        days.add("Tuesday");
        days.add("Wednesday");
        days.add("Thursday");
        days.add("Friday");
        days.add("Saturday");

        // print all the days in the week
        System.out.println("Week Days: \t" + days + "\n");

        // after calling peek()
        System.out.println("peek() returned: " + days.peek());
        System.out.println("Week Days: \t" + days + "\n");

        System.out.println("peek() returned: " + days.peek());
        System.out.println("Week Days: \t" + days + "\n");

        // after calling remove()
        System.out.println("remove() returned: " + days.remove());
        System.out.println("Days Updated!\t" + days + "\n");

        System.out.println("remove() returned: " + days.remove());
        System.out.println("Days Updated!\t" + days + "\n");

        System.out.println("remove() returned: " + days.remove());
        System.out.println("remove() returned: " + days.remove());
        System.out.println("remove() returned: " + days.remove());
        System.out.println("remove() returned: " + days.remove());

        System.out.println("Days Updated!\t" + days + "\n");

        // after calling poll()
        System.out.println("poll() returned: " + days.poll());
        System.out.println("Days Updated!\t" + days + "\n");

        System.out.println("poll() returned: " + days.poll());
        System.out.println("remove() returned: " + days.remove());

	}
}
آؤٹ پٹ
ہفتے کے دن: [اتوار، پیر، منگل، بدھ، جمعرات، جمعہ، ہفتہ] جھانک کر واپس آئے: اتوار کے ہفتے کے دن: [اتوار، پیر، منگل، بدھ، جمعرات، جمعہ، ہفتہ] جھانک کر واپس آئے: اتوار کے ہفتے کے دن : [اتوار، سوموار، منگل، بدھ، جمعرات، جمعہ، ہفتہ] ہٹا دیں() واپس آئے: اتوار کے دن اپ ڈیٹ! [پیر، منگل، بدھ، جمعرات، جمعہ، ہفتہ] ہٹا دیں() واپس آئے: پیر کے دن اپ ڈیٹ ہو گئے! [منگل، بدھ، جمعرات، جمعہ، ہفتہ] ہٹا دیں() واپس آئے: منگل ہٹائیں() واپس آئے: بدھ ہٹائیں() واپس آئے: جمعرات کو ہٹا دیں() واپس آیا: جمعہ کے دن اپ ڈیٹ ہوئے! [ہفتہ] پول () واپس آیا: ہفتہ کے دن اپ ڈیٹ ہو گئے! [] پول() واپس آیا: تھریڈ "main" java.util.NoSuchElementException میں null Exception at java.util.LinkedList.removeFirst(LinkedList.java:270) java.util.LinkedList.remove(LinkedList.5) پر QueuePollMethod.main(QueuePollMethod.java:48)
جیسا کہ آپ دیکھ سکتے ہیں peek() کو کال کرنے کے بعد ہفتے کے دن وہی رہتے ہیں۔ اور جیسا کہ ہم remove() یا poll() استعمال کرتے ہیں سر کو واپس کرنے کے ساتھ ہی قطار کا سائز 1 تک کم ہوجاتا ہے۔ مزید برآں، java.util.NoSuchElementException اس وقت پھینک دیا جاتا ہے جب ہم ایک خالی قطار میں remove() کو کال کرتے ہیں ، جبکہ poll() استعمال کرنے کے لیے ایسی کوئی رعایت نہیں دی جاتی ہے ۔

نتیجہ

آخر تک، ہم امید کرتے ہیں کہ آپ قطاروں کے پول() طریقہ کار کے استعمال اور کام سے واقف ہوں گے۔ تاہم کسی بھی الجھن کی صورت میں آپ ہمیشہ مشورہ کرنے کے لیے یہاں آ سکتے ہیں۔ مبارک ہو کوڈنگ!
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION