CodeGym /جاوا بلاگ /Random-UR /جاوا ایٹریٹر
John Squirrels
سطح
San Francisco

جاوا ایٹریٹر

گروپ میں شائع ہوا۔
ہائے! آج کے سبق میں، ہم جاوا ایٹریٹر کے بارے میں بات کریں گے۔ تصور کریں کہ آپ لائبریری جاتے ہیں، اور آپ ایک خاص کتاب تلاش کرنا چاہتے ہیں۔ آپ یہ کیسے کرتے ہیں؟ اگر یہ نان فکشن ہے تو ڈیوی ڈیسیمل سسٹم موجود ہے۔ اگر یہ افسانہ ہے، تو وہ حروف تہجی کے لحاظ سے ان کے آخری نام کے مطابق ترتیب دیے گئے ہیں۔ آپ جو کچھ بھی تلاش کر رہے ہیں، کسی وقت، آپ کو ایک وقت میں کتابوں سے گزرنا پڑتا ہے جب تک کہ آپ کو وہ چیز نہ مل جائے جس کی آپ تلاش کر رہے ہیں۔ جب بھی آپ کے پاس جاوا میں چیزوں کا کوئی مجموعہ ہے، چاہے وہ ایک Array ، ایک ArrayList ، a Queue ، یا ایک List میں محفوظ ہو ، آپ کو خاص قدر کیسے ملے گی؟ کسی وقت، آپ کو ایک وقت میں ہر ایک عنصر سے گزرنا پڑتا ہے۔ جاوا ایٹریٹر اس کے لیے ہے۔جاوا ایٹریٹر کا استعمال کیسے کریں: ایک مختصر ٹیوٹوریل - 1

جاوا میں Iterator کیا ہے؟

جاوا میں ایک تکرار کنندہ کیا ہے؟ یہ ایک مجموعہ میں ہر عنصر کو دیکھنے کا ایک طریقہ ہے۔ اور مجموعہ سے، ہمارا مطلب کلیکشن کلاس میں کچھ بھی ہے۔ اس میں شامل ہے:
  • ArrayList
  • ہیش سیٹ
  • لنکڈ ہیش سیٹ
  • لنکڈ لسٹ
  • ترجیحی قطار
  • ویکٹر
  • اور کئی دوسرے…
اس میں ان کلاسوں کے لیے مختلف انٹرفیسز بھی شامل ہیں، جیسے کہ Set , List , Queue , Dequeue , اور Sorted Set ، چند ایک کے نام۔ Iterator<E> انٹرفیس Iterator<E> کلاس کا عوامی انٹرفیس طریقہ ہے۔ یہ جاوا 1.2 میں لایا گیا تھا اور ایک مجموعہ میں ترتیب وار عناصر کی جانچ کرنے کے طریقے کے طور پر شمار کو تبدیل کیا گیا تھا۔

آپ کو جاوا میں ایٹریٹر کے طور پر لوپس کے لئے کیوں استعمال نہیں کرنا چاہئے۔

جاوا میں ایک مجموعہ کے ذریعے ہر ایک کو اعادہ کرنا سکھایا جانے والا پہلا طریقہ لوپ کے لیے ہے۔ ایسا لگتا ہے:
class Main {
  public static void main(String[] args) {
    int exampleArray[] = new int[10];

    //fill array with data

    for(int x = 0; x < exampleArray.length; x++) {
      System.out.println("Content of element " + x + "is: " + exampleArray[x]);
    }
  }
}
آؤٹ پٹ ایک فہرست ہوگی جو پڑھتی ہے:

Content of element 0 is: 0
Content of element 1 is: 1
Content of element 2 is: 2
etc.…
اس کے استعمال ہوتے ہیں، لیکن کیا ہوتا ہے اگر مجموعہ انڈیکس پر مبنی نظام میں عناصر کو ذخیرہ نہیں کرتا ہے؟ مثال کے طور پر، Set s کا عام طور پر کوئی حکم نہیں ہوتا ہے۔ لہذا یہ مشورہ دیا جاتا ہے کہ جاوا میں ایٹریٹر کے طور پر فار لوپ کو استعمال کرنے کی مشق سے باہر نکلیں اور اس کی بجائے Iterator<E> کلاس استعمال کرنے کی مشق کریں۔ یہاں جاوا ایٹریٹر کی کچھ مثالیں ہیں۔

جاوا میں Iterator کا استعمال کیسے کریں۔

یہاں جاوا میں تکرار کرنے والے کو استعمال کرنے کے طریقے کی کچھ مثالیں ہیں۔ ایٹریٹر کلاس استعمال کرتے وقت، مجموعہ کو عبور کرنے کے تین طریقے ہیں۔ آپ a while() لوپ، a for() لوپ، اور forEach() لوپ استعمال کر سکتے ہیں۔ نوٹ کریں کہ یہ لوپ کے لیے اس سے مختلف ہے جس کے بارے میں ہم نے پہلے بات کی تھی۔ یہاں تین مختلف جاوا ایٹریٹر کی مثالیں ہیں۔ سب سے پہلے، آئیے دوبارہ جمع کرنے کے لیے مجموعہ ترتیب دیں۔
import java.util.*; // imports ArrayList, Collection and Iterator

class Main {
  public static void main(String[] args) {
    Collection<String> example = new ArrayList<String>();

    example.add("Item 1");
    example.add("Item 2");
    example.add("Item 3");
    example.add("Item 4");
  }
}
یہ ایک سادہ مجموعہ ہے جو ایک ArrayList سے بنا ہے جس میں ہم نے چار آئٹمز لوڈ کیے ہیں۔ آئیے اب ArrayList کو عبور کرنے کے لیے Iterator کلاس استعمال کرنے کے تین طریقوں کو دیکھتے ہیں ۔

جبکہ () لوپ

Iterator<String> iterator = example.iterator();

while (iterator.hasNext()) {
   System.out.println("Element Value= " + iterator.next());
}
یہ while() لوپ .hasNext() Iterator کلاس کا بولین طریقہ استعمال کرتا ہے تاکہ یہ چیک کیا جا سکے کہ آیا مستقبل میں کوئی عنصر موجود ہے۔ اگر پیشگی شرط درست ہے، تو یہ آگے بڑھتا ہے۔ اگر یہ غلط کے طور پر واپس آتا ہے، تو لوپ ختم ہوجاتا ہے۔ یہاں اہم حصہ یہ ہے کہ .hasNext() اور .next() طریقے دونوں پہلے عنصر کی ابتدائی جانچ کرتے ہیں۔ اگر مجموعہ خالی ہے اور کوئی پہلا عنصر نہیں ہے، تو طریقہ .hasNext() کے لیے غلط لوٹاتا ہے اور .next() طریقہ کے لیے NoSuchElementException پھینک دے گا۔

لوپ کے لیے

for (Iterator<String> iterator = example.iterator(); iterator.hasNext();) {
  System.out.println("Element Value= " + iterator.next());
}
یہ لوپ کے لیے زیادہ روایتی لگتا ہے۔ یہ .hasNext() طریقہ کا استعمال کنڈیشن چیک اور تبدیلی والے حصے کے طور پر کرتا ہے۔ ابتداء Iterator کو کال ہے۔

کے لیے: ہر ایک لوپ

for (String s : example) {
  System.out.println("Element Value= " + s);
}
The For:ہر لوپ فار لوپ ہے، لیکن اگر آپ اسے پڑھنا نہیں جانتے ہیں تو یہ تھوڑا سا الجھا ہوا ہو سکتا ہے۔ For:Each loop کا نحو (data_type variableName : collectionName){body} کے لیے ہے ۔ اس کے لیے: ہر لوپ میں کچھ خرابیاں ہوتی ہیں۔ سب سے پہلے، یہ صرف ایک سمت میں جمع کر سکتا ہے. دوسرا، آپ کو ہر عنصر کے ذریعے اعادہ کرنا ہوگا۔ آپ ان میں سے کسی کو بھی نہیں چھوڑ سکتے۔ لیکن جاوا میں ایک آسان فہرست تکرار کرنے والے کے طور پر، یہ بہترین آپشن ہے۔ پلس سائیڈ پر، for:each لوپ کو پڑھنا بہت آسان ہے اور ایک بار جب آپ اسے جان لیں گے تو اس کا غلط ہونا مشکل ہے۔ اگر آپ سوچ رہے ہیں کہ تین تکراری لوپس کا آؤٹ پٹ کیا ہے، تو وہ سب ایک جیسے ہیں:

Element Value= Item 1
Element Value= Item 2
Element Value= Item 3
Element Value= Item 4 

جاوا برائے نقشہ جاوا میں ایٹریٹر کا استعمال کیسے کریں۔

Maps ڈیٹا کو ذخیرہ کرنے کا ایک مقبول طریقہ ہے، لیکن چونکہ وہ Collection کو نہیں بڑھاتے ہیں ، اس لیے آپ نقشے کو براہ راست عبور کرنے کے لیے پچھلے تکرار کرنے والوں کا استعمال نہیں کر سکتے۔ تو آپ Map s اور HashMap s سے گزرنے کے لیے جاوا میں ایٹریٹر کیسے استعمال کرتے ہیں ؟ جاوا میپ ایٹریٹر کے چار اچھے طریقے ہیں۔ ہم انفرادی طور پر ان کا احاطہ کریں گے۔ سب سے پہلے، آئیے اقدار کی ایک سیریز کے ساتھ ایک نقشہ لوڈ کرتے ہیں۔
import java.util.*; //imports Map and HashMap

class Main {
  public static void main(String[] args) {
    Map<String, String> example = new HashMap<String, String>();

    example.put("alpha", "one");
    example.put("beta", "two");
    example.put("gamma", "three");

  }
}

جاوا ہیش میپ ایٹریٹر کا طریقہ: forEach(ایکشن)

example.forEach((k,v) -> System.out.println("Key: "+ k + ", Value: " + v));
یہ طریقہ تکرار کرنے کے لئے لیمبڈا اظہار کا استعمال کرتا ہے۔ لیمبڈا آپریٹر forEach() طریقہ ہے، اور جسم اقدار کو پرنٹ کرتا ہے۔ یہ ایک سے زیادہ پیرامیٹر آپریٹر استعمال کرتا ہے۔ یہ جاوا 8 میں نقشہ تکرار کرنے والا سب سے تیز اور صاف ترین طریقہ ہے۔

جاوا ہیش میپ ایٹریٹر کا طریقہ: برائے: ہر () لوپ

for (Map.Entry<String, String> iterate : example.entrySet()) {
  System.out.println("Key: " + iterate.getKey() + ", Value: " + iterate.getValue());
}
یہ For:Each نحو کو استعمال کرتا ہے entrySet() طریقہ کو کال کرنے کے لیے اس سیٹ کو واپس کرنے کے لیے جس میں کلید اور قدر اس کے عناصر کے طور پر ہو۔ مزید برآں، .Entry() طریقہ استعمال کرتے وقت ، اشیاء صرف اس وقت درست ہوتی ہیں جب یہ تکرار ہو رہی ہو۔

Java Hashmap Iterator طریقہ: Map. Entry<k, v>

Iterator<Map.Entry<String, String>> iterator = example.entrySet().iterator();

while(iterator.hasNext()){
  Map.Entry<String, String> element = iterator.next();
  System.out.println("Key: " + element.getKey() + ", Value: " + element.getValue());
)
یہ طریقہ ایک بار پھر Map کو ایک سیٹ میں تبدیل کرتا ہے تاکہ Collections Iterator اور طریقوں کو استعمال کیا جا سکے۔ ان تین تکراری طریقوں کے لئے، واپسی اس طرح نظر آتی ہے:
Key: alpha, Value: one
Key: beta, Value: two
Key: gamma, Value: three
Java Hashmap Iterator Method: keySet() and values()
for (String key : example.keySet()) {
  System.out.println("Key: " + key);
}
for (String value : example.values()) {
  System.out.println("Value: " + value);
}
یہ عناصر کو مختلف طریقے سے لوٹاتا ہے۔ یہ سب سے پہلے تمام کلیدوں کو ترتیب میں واپس کرے گا اور پھر تمام قدریں:

Key: alpha
Key: beta
Key: gamma
Value: one
Value: two
Value: three
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION