"สวัสดี อามีโก้"

"นี่ ริชชี่"

"Ellie บอกฉันว่าคุณต้องการตัวอย่างคอลเล็กชันเพิ่มเติม ฉันจะให้บางส่วน นี่คือรายการคอลเล็กชันและอินเทอร์เฟซ:"

อินเตอร์เฟซ คลาส / การนำไปใช้ คำอธิบาย
รายการ  รายการอาร์เรย์  รายการ
 รายการที่เชื่อมโยง  รายการ
 เวกเตอร์  เวกเตอร์
 ซ้อนกัน  ซ้อนกัน
 ชุด    ชุดแฮช  ชุด
 ชุดต้นไม้  ชุด
 SortedSet  ชุดเรียง
แผนที่  แฮชแมป แผนที่/พจนานุกรม
 แผนที่ต้นไม้  แผนที่/พจนานุกรม
 SortedMap  เรียงพจนานุกรม
 แฮชเทเบิล  ตารางแฮช

"อืม เยอะทีเดียว สี่รายการ สามชุด และสี่แผนที่"

"ใช่ ทั้งหมดนี้เป็นการนำไปใช้ที่แตกต่างกันของอินเทอร์เฟซรายการ ชุด และแผนที่"

"ความแตกต่างระหว่างการใช้งานเหล่านี้คืออะไร"

"นั่นคือสิ่งที่เราจะพูดถึงในวันนี้ อดทนหน่อยนะ"

“คุณมีคำถามอะไรอีกไหม”

" ฉันรู้วิธีแสดงรายการบนหน้าจอ ฉันจะแสดงชุดหรือแผนที่ได้อย่างไร"

"องค์ประกอบของรายการมีลำดับที่ตั้งไว้ ดังนั้นคุณจึงสามารถใช้ดัชนีเพื่อแสดงได้ สำหรับชุดหรือแผนที่ ไม่มีลำดับเฉพาะ อันที่จริง ลำดับขององค์ประกอบสามารถเปลี่ยนแปลงได้เมื่อรายการถูกลบหรือสร้างใหม่ มีการเพิ่มรายการ"

"อัศจรรย์."

"นี่คือเหตุผลที่อ็อบเจกต์พิเศษที่เรียกว่าiteratorsถูกประดิษฐ์ขึ้นเพื่อทำงานร่วมกับองค์ประกอบคอลเลกชั่น พวกมันให้คุณดูองค์ประกอบทั้งหมดในคอลเลกชั่น แม้ว่ามันจะมีแค่ชื่อแทนดัชนี (แผนที่) หรือไม่มีชื่อหรือดัชนีก็ตาม ( ชุด)."

"นี่คือตัวอย่างบางส่วน:"

แสดงองค์ประกอบของชุด
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. เมธอด next() จะส่งกลับองค์ประกอบถัดไปในคอลเลกชัน

2. เมธอด hasNext() ตรวจสอบว่ายังมีองค์ประกอบที่ยังไม่ถูกส่งคืนโดย next() หรือไม่"

“ตกลง ฉันคิดว่ามันชัดเจนขึ้นแล้ว ให้ฉันพยายามพูดซ้ำกลับไปว่าฉันเข้าใจอะไร”

"ดังนั้น... ขั้นแรก เราต้องเรียกใช้เมธอด iterator() ในคอลเล็กชันเพื่อรับวัตถุตัววนซ้ำวิเศษนี้"

"จากนั้นเราจะได้รับองค์ประกอบทีละรายการตราบเท่าที่ยังเหลืออยู่ เราได้รับองค์ประกอบถัดไปในคอลเลกชันโดยเรียก next() และเราตรวจสอบว่ายังมีองค์ประกอบในคอลเลกชันหรือไม่โดยเรียก hasNext() บน iterator ถูกต้องหรือไม่"

“ใช่ค่ะ ไม่มากก็น้อย แต่รอส่วนดี”

"Java มีสัญกรณ์ชวเลขสำหรับการทำงานกับ iterators ตามรูปแบบของwhileและforมีการเพิ่มคำสั่งพิเศษอีกหนึ่งคำสั่ง: for eachมันถูกระบุโดยใช้คำสำคัญสำหรับ "

"คำสั่ง for-each ใช้สำหรับการทำงานกับคอลเลกชั่นและคอนเทนเนอร์เท่านั้น มันใช้ตัววนซ้ำโดยปริยาย แต่เราจะมองเห็นเฉพาะองค์ประกอบที่ส่งคืนเท่านั้น"

"ให้ฉันแสดงวิธีลองมือและชวเลขในการทำงานกับตัววนซ้ำ:"

มือยาว
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);
    }
}

“ตอนนี้คุณกำลังพูด!”

"ฉันดีใจที่คุณชอบมัน."