CodeGym /جاوا بلاگ /Random-SD /جاوا آئٽرٽر
John Squirrels
سطح
San Francisco

جاوا آئٽرٽر

گروپ ۾ شايع ٿيل
سلام اڄ جي سبق ۾، اسان جاوا آئيٽرٽر بابت ڳالهائينداسين. تصور ڪريو ته توھان لائبريري ڏانھن وڃو، ۽ توھان ھڪڙو خاص ڪتاب ڳولڻ چاھيو ٿا. توهان اهو ڪيئن ٿا ڪريو؟ جيڪڏهن اهو غير افسانوي آهي، اتي آهي Dewey Decimal سسٽم. جيڪڏھن اھو افسانو آھي، اھي ترتيب ڏنل آھن الفابيٽ جي ترتيب ۾ پنھنجي آخري نالي سان. جيڪو به توهان ڳولي رهيا آهيو، ڪنهن نقطي تي، توهان کي هڪ هڪ وقت تي ڪتابن ذريعي وڃڻو پوندو جيستائين توهان اهو ڳوليندا آهيو جيڪو توهان ڳولي رهيا آهيو. جڏهن به توهان وٽ جاوا ۾ شين جو هڪ مجموعو آهي، ڇا اهو هڪ Array ، هڪ ArrayList ، هڪ قطار ، يا هڪ فهرست ۾ ذخيرو ٿيل آهي، توهان کي خاص قيمت ڪيئن ملندي؟ ڪجهه نقطي تي، توهان کي هڪ وقت ۾ هر عنصر ذريعي وڃڻ گهرجي. اھو اھو آھي جيڪو جاوا ايٽرٽر لاءِ آھي.جاوا آئيٽرٽر ڪيئن استعمال ڪجي: هڪ مختصر سبق - 1

جاوا ۾ هڪ Iterator ڇا آهي

جاوا ۾ هڪ آئٽرٽر ڇا آهي؟ اهو هڪ مجموعو ۾ هر عنصر کي ڏسڻ جو هڪ طريقو آهي. ۽ گڏ ڪرڻ سان، اسان جو مطلب آهي مجموعي طبقي ۾ ڪجھ به. ھن ۾ شامل آھن:
  • ArrayList
  • HashSet
  • LinkedHashSet
  • LinkedList
  • ترجيحي قطار
  • ویکٹر
  • ۽ ٻيا ڪيترائي…
ان ۾ انھن طبقن لاءِ مختلف انٽرفيس پڻ شامل آھن، جھڙوڪ 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> class استعمال ڪرڻ جي مشق ڪريو. هتي جاوا آئٽرٽر جا ڪجهه مثال آهن.

جاوا ۾ Iterator ڪيئن استعمال ڪجي

ھتي ڪجھ مثال آھن جاوا ۾ آئٽرٽر ڪيئن استعمال ڪجي. جڏهن استعمال ڪندي آئٽرٽر ڪلاس، اتي ٽي طريقا آهن جمع ڪرڻ لاءِ. توھان استعمال ڪري سگھو ٿا a while() loop, a for() loop, and a forEach() loop. ياد رهي ته هي لوپ لاءِ مختلف آهي جنهن بابت اسان اڳ ڳالهايو آهي. هتي ٽي مختلف جاوا آئٽرٽر جا مثال آهن. پهرين، اچو ته گڏ ڪرڻ لاء ترتيب ڏيو ذريعي ٻيهر.
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 جو ٺهيل آھي جنھن ۾ اسان چار شيون لوڊ ڪيون آھن. ھاڻي اچو ته ڏسون ٽن طريقن کي استعمال ڪرڻ لاءِ Iterator class استعمال ڪرڻ لاءِ ArrayList .

جڏهن ته () لوپ

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

while (iterator.hasNext()) {
   System.out.println("Element Value= " + iterator.next());
}
This while() loop استعمال ڪري ٿو .hasNext() Boolean طريقو آئٽرٽر ڪلاس جو اهو ڏسڻ لاءِ ته ڇا مستقبل ۾ ڪو عنصر موجود آهي. جيڪڏهن شرط صحيح آهي، ته پوءِ اڳتي وڌندو. جيڪڏهن اهو غلط طور تي واپس اچي ٿو، پوء لوپ ختم ٿي ويندو. هتي اهم حصو اهو آهي ته .hasNext() ۽ .next() طريقا ٻئي پهرين عنصر جي شروعاتي چيڪ ڪندا آهن. جيڪڏهن مجموعو خالي آهي ۽ ڪو به پهريون عنصر نه آهي، ته طريقو واپس اچي ٿو غلط لاءِ .hasNext() ۽ .next() طريقي لاءِ NoSuchElementException اڇلائي ڇڏيندو .

لوپ لاء

for (Iterator<String> iterator = example.iterator(); iterator.hasNext();) {
  System.out.println("Element Value= " + iterator.next());
}
هي لوپ لاء وڌيڪ روايتي وانگر ڏسڻ ۾ اچي ٿو. اهو استعمال ڪري ٿو .hasNext() طريقو جيئن حالت چيڪ ڪريو ۽ حصو تبديل ڪريو. شروعات آهي آئيٽرٽر کي ڪال.

لاءِ: هر لوپ

for (String s : example) {
  System.out.println("Element Value= " + s);
}
لاءِ : هر لوپ هڪ لوپ لاءِ آهي، پر جيڪڏهن توهان کي خبر ناهي ته ان کي ڪيئن پڙهو، اهو ٿورڙو مونجهارو ٿي سگهي ٿو. هڪ جي نحو لاءِ: هر لوپ لاءِ آهي (data_type variableName : collectionName){body} . هن لاءِ: هر لوپ ۾ ڪجهه خرابيون هونديون آهن. پهريون، اهو صرف هڪ طرفي ۾ گڏ ڪرڻ کي پار ڪري سگهي ٿو. ٻيو، توهان کي هر عنصر ذريعي ٻيهر ڪرڻو پوندو. توهان انهن مان ڪنهن کي به ڇڏي نه ٿا سگهو. پر جاوا ۾ هڪ آسان فهرست جي ريٽٽر جي طور تي، اهو بهترين اختيار آهي. پلس پاسي، لاء: هر لوپ پڙهڻ لاء تمام آسان آهي ۽ هڪ دفعو توهان کي خبر آهي، اهو غلط ٿيڻ ڏکيو آهي. جيڪڏهن توهان حيران ٿي رهيا آهيو ته ٽن آئٽرٽر لوپس جي پيداوار ڇا آهي، اهي سڀ ساڳيا آهن:

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

نقشن لاءِ جاوا ۾ آئيٽرٽر ڪيئن استعمال ڪجي

نقشا ڊيٽا کي ذخيرو ڪرڻ جو هڪ مشهور طريقو آهي، پر ڇاڪاڻ ته اهي جمع نه وڌائيندا آهن ، توهان اڳئين آئٽرٽر استعمال نٿا ڪري سگهو نقشي کي سڌو رستو ڏيڻ لاءِ. تنهن ڪري توهان نقشي ۽ 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");

  }
}

جاوا هش ميپ آئٽرٽر طريقو: هر لاءِ (ڪارروائي)

example.forEach((k,v) -> System.out.println("Key: "+ k + ", Value: " + v));
اهو طريقو استعمال ڪري ٿو لامبڊا اظهار ذريعي ٻيهر ورجائڻ لاءِ. lambda آپريٽر forEach() طريقو آهي، ۽ جسم قدرن کي پرنٽ ڪري ٿو. هي هڪ گھڻن پيٽرولر آپريٽر استعمال ڪري ٿو. اهو آهي تيز ترين ۽ صاف طريقو جاوا 8 ۾ نقشي جي ايٽرٽر لاءِ.

جاوا هش ميپ آئٽرٽر طريقو: لاءِ: هر () لوپ

for (Map.Entry<String, String> iterate : example.entrySet()) {
  System.out.println("Key: " + iterate.getKey() + ", Value: " + iterate.getValue());
}
هي For:Each Syntax استعمال ڪري ٿو entrySet() طريقي کي ڪال ڪرڻ لاءِ هڪ سيٽ واپس ڪرڻ لاءِ جنهن ۾ اهم ۽ قدر ان جي عنصرن وانگر آهي. اضافي طور تي، جڏهن .Entry() طريقي کي استعمال ڪندي، شيون صرف صحيح آهن جڏهن هي iteration ٿي رهيو آهي.

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());
)
هي طريقو ٻيهر نقشي کي هڪ سيٽ ۾ تبديل ڪري ٿو ڪليڪشن آئيٽرٽر ۽ طريقن کي استعمال ڪرڻ لاءِ. انهن ٽنهي ورهاڱي جي طريقن لاء، واپسي هن طرح نظر اچي ٿي:
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