"হাই, অ্যামিগো।"

"আরে, ঋষি।"

"এলি আমাকে বলেছিল যে আপনি সংগ্রহের আরও উদাহরণ চান। আমি আপনাকে কয়েকটি দেব। এখানে সংগ্রহ এবং ইন্টারফেসের একটি তালিকা রয়েছে:"

ইন্টারফেস শ্রেণী/বাস্তবায়ন বর্ণনা
তালিকা  অ্যারেলিস্ট  তালিকা
 যোজিত তালিকা  তালিকা
 ভেক্টর  ভেক্টর
 স্ট্যাক  স্ট্যাক
 সেট    হ্যাশসেট  সেট
 ট্রি সেট  সেট
 সাজানো সেট  সাজানো সেট
মানচিত্র  হ্যাশ মানচিত্র মানচিত্র/অভিধান
 ট্রিম্যাপ  মানচিত্র/অভিধান
 সাজানো মানচিত্র  সাজানো অভিধান
 হ্যাশ টেবিল  হ্যাশ টেবিল

"হুম। এটা অনেক। চারটি তালিকা, তিন সেট এবং চারটি মানচিত্র।"

"হ্যাঁ, এগুলি তালিকা, সেট এবং মানচিত্র ইন্টারফেসের সমস্ত ভিন্ন বাস্তবায়ন।"

"এই বাস্তবায়নের মধ্যে পার্থক্য কি?"

"আজকে আমরা এই বিষয়েই কথা বলতে যাচ্ছি। শুধু ধৈর্য ধরুন।"

"আপনার কি অন্য কোন প্রশ্ন আছে?"

"আমি জানি কিভাবে স্ক্রিনে একটি তালিকা প্রদর্শন করতে হয়। আমি কিভাবে একটি সেট বা মানচিত্র প্রদর্শন করব?"

"একটি তালিকার উপাদানগুলির একটি সেট ক্রম থাকে, তাই আপনি সেগুলি প্রদর্শন করার জন্য একটি সূচী ব্যবহার করতে পারেন৷ একটি সেট বা মানচিত্রের জন্য, কোনও নির্দিষ্ট ক্রম নেই৷ আসলে, আইটেমগুলি মুছে ফেলা বা নতুন হওয়ার সাথে সাথে তাদের উপাদানগুলির ক্রম পরিবর্তন হতে পারে৷ আইটেম যোগ করা হয়।"

"আশ্চর্যজনক।"

"এই কারণেই ইটারেটর নামক বিশেষ বস্তুগুলি সংগ্রহের উপাদানগুলির সাথে কাজ করার জন্য উদ্ভাবিত হয়েছিল৷ তারা আপনাকে একটি সংগ্রহের সমস্ত উপাদানের মধ্য দিয়ে যেতে দেয়, এমনকি যদি তাদের সূচকের পরিবর্তে শুধুমাত্র নাম থাকে (মানচিত্র), বা নাম বা সূচক নেই ( সেট)।"

"এখানে কিছু উদাহরণঃ:"

একটি সেটের উপাদান প্রদর্শন করুন
public static void main(String[] args)
{
    Set<String> set = new HashSet<String>();
    set.add("Rain");
    set.add("In");
    set.add("Spain");

     // Get an iterator for the set
     Iterator<String> iterator = set.iterator();

    while (iterator.hasNext())        // Check if there is another element
    {
       // Get the current element and move to the next one
       String text = iterator.next();

        System.out.println(text);
    }
}
একটি তালিকার উপাদান প্রদর্শন করুন
public static void main(String[] args)
{
    List<String> list = new ArrayList<String>();
    list.add("Rain");
    list.add("In");
    list.add("Spain");

    Iterator<String> iterator = list.iterator();// Get an iterator for the list

    while (iterator.hasNext())      // Check if there is another element
    {
        // Get the current element and move to the next one
        String text = iterator.next();

        System.out.println(text);
    }
}
একটি মানচিত্রের উপাদান প্রদর্শন করুন
public static void main(String[] args)
{
    // All elements are stored in pairs
    Map<String, String> map = new HashMap<String, String>();
    map.put("first", "Rain");
    map.put("second", "In");
    map.put("third", "Spain");

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

   while (iterator.hasNext())
    {
        // Get a key-value pair
        Map.Entry<String, String> pair = iterator.next();
        String key = pair.getKey();            // Key
        String value = pair.getValue();        // Value
        System.out.println(key + ":" + value);
    }
}

"বাহ। আমি ভাবছি এর মানে কি।"

"এটি আসলে বেশ সহজ। প্রথমত, আমরা সংগ্রহ থেকে একটি বিশেষ বস্তু, একটি পুনরাবৃত্তিকারী পাই। পুনরাবৃত্তিকারীর মাত্র দুটি পদ্ধতি আছে।

1. পরবর্তী() পদ্ধতি সংগ্রহের পরবর্তী উপাদান প্রদান করে।

2. hasNext() পদ্ধতি চেক করে যে এখনও এমন কিছু উপাদান আছে যা পরবর্তী() দ্বারা ফেরত দেওয়া হয়নি।"

"ঠিক আছে। আমি মনে করি এটা এখন পরিষ্কার হয়ে যাচ্ছে। আমি যা বুঝলাম তা আপনাকে আবার বলার চেষ্টা করি।"

"সুতরাং... প্রথমে, এই ম্যাজিক ইটারেটর অবজেক্টটি পেতে আমাদের একটি সংগ্রহে ইটারেটর() পদ্ধতিতে কল করতে হবে।"

"তারপর যতক্ষণ কিছু পাওয়ার বাকি থাকে ততক্ষণ আমরা একে একে এলিমেন্ট পাচ্ছি। আমরা next() এ কল করে সংগ্রহের পরবর্তী এলিমেন্ট পাই এবং hasNext() এ কল করে সংগ্রহে এখনও উপাদান আছে কিনা তা পরীক্ষা করি। পুনরাবৃত্তিকারী। এটা কি সঠিক?"

"হ্যাঁ, কম বা কম। তবে ভালো অংশের জন্য অপেক্ষা করুন।"

"জাভাতে পুনরাবৃত্তিকারীদের সাথে কাজ করার জন্য সংক্ষিপ্ত স্বরলিপি রয়েছে। while এবং for এর প্যাটার্ন অনুসরণ করে , আরও একটি বিশেষ বিবৃতি যোগ করা হয়েছে: প্রতিটির জন্য । এটির জন্য কীওয়ার্ড ব্যবহার করেও নির্দেশিত হয়েছে ।"

"প্রতিটির জন্য বিবৃতিটি শুধুমাত্র সংগ্রহ এবং পাত্রে কাজ করার জন্য ব্যবহৃত হয়। এটি একটি পুনরাবৃত্তিকারীকে স্পষ্টভাবে ব্যবহার করে, কিন্তু আমরা শুধুমাত্র ফিরে আসা উপাদান দেখতে পাই।"

"আমাকে একটি পুনরাবৃত্তের সাথে কাজ করার জন্য লংহ্যান্ড এবং শর্টহ্যান্ড উপায়গুলি দেখাই:"

লংহ্যান্ড
public static void main(String[] args)
{
  Set<String> set = new HashSet<String>();
    set.add("Rain");
    set.add("In");
    set.add("Spain");

    Iterator<String> iterator = set.iterator();
  while (iterator.hasNext())
  {
    String text = iterator.next();
    System.out.println(text);
  }
}
শর্টহ্যান্ড
public static void main(String[] args)
{
    Set<String> set = new HashSet<String>();
    set.add("Rain");
    set.add("In");
    set.add("Spain");

   for (String text : set)
    {
        System.out.println(text);
    }
}

"উল্লেখ্য যে লাল বা সবুজ রঙে হাইলাইট করা শব্দগুলি ডান অংশে অনুপস্থিত। আসলে, তিনটি লাইন একটি দ্বারা প্রতিস্থাপিত হয়েছে:"

লংহ্যান্ড
Iterator<String> iterator = set.iterator();
while (iterator.hasNext())
{
    String text = iterator.next();
শর্টহ্যান্ড
for (String text : set)

"এটা দারুন লাগছে। আমি এটাকে এভাবে অনেক ভালো পছন্দ করি।"

"আসুন উপরের উদাহরণগুলির সংক্ষিপ্ত সংস্করণটি দেখি:"

একটি সেটের উপাদান প্রদর্শন করুন
public static void main(String[] args)
{
    Set<String> set = new HashSet<String>();
    set.add("Rain");
    set.add("In");
    set.add("Spain");

    for (String text : set)
    {
        System.out.println(text);
    }
}
একটি তালিকার উপাদান প্রদর্শন করুন
public static void main(String[] args)
{
    List<String> list = new ArrayList<String>();
    list.add("Rain");
    list.add("In");
    list.add("Spain");

     for (String text : list)
    {
        System.out.println(text);
    }
}
একটি মানচিত্রের উপাদান প্রদর্শন করুন
public static void main(String[] args)
{
    Map<String, String> map = new HashMap<String, String>();
    map.put("first", "Rain");
    map.put("second", "In");
    map.put("third", "Spain");

    for (Map.Entry<String, String> pair : map.entrySet())
    {
        String key = pair.getKey();                      // Key
        String value = pair.getValue();                  // Value
        System.out.println(key + ":" + value);
    }
}

"এখন আপনি কথা বলছেন!"

"আমি আনন্দিত আপনি এটা পছন্দ করেছে."