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

"นี่ ริชชี่"

"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);
    }
}
2
งาน
Java Syntax,  ระดับบทเรียน
ล็อค
Code entry
Sometimes you don't need to think, you just need to hammer it out! As paradoxical as it may seem, sometimes your fingers will "remember" better than your conscious mind. That's why while training at the secret CodeGym center you will sometimes encounter tasks that require you to enter code. By entering code, you get used to the syntax and earn a little dark matter. What's more, you combat laziness.
แสดงองค์ประกอบของรายการ
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);
    }
}

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

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