0Pricing
Java Academy · บทเรียน

ตัววนซ้ำและ for แบบเสริม

วนผ่านคอลเลกชันด้วย Iterator และ for แบบเสริม เรียนรู้การลบอย่างปลอดภัยระหว่างการวนซ้ำและข้อผิดพลาดที่พบบ่อย

ตัววนซ้ำและ for แบบเสริม เป็นบทเรียน Java Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Java Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Java Academy มีบทเรียนทั้งหมด 3 บทเรียน

ภาพรวม

ตัววนซ้ำ ช่วยควบคุมการเดินผ่านคอลเลกชันทีละขั้น ส่วน for แบบขยาย (for-each) สั้นและอ่านง่าย เหมาะสำหรับอ่านองค์ประกอบ ใช้ Iterator เมื่อต้องการลบข้อมูลอย่างปลอดภัยระหว่างการวนผ่าน

Iterator กับ for-each

  • Iterator: ใช้เมื่ออาจต้องลบข้อมูลหรือต้องการควบคุมอย่างละเอียด
  • for แบบขยาย: เหมาะที่สุดสำหรับลูปแบบอ่านอย่างเดียว
  • อย่าเปลี่ยนแปลงโครงสร้างของคอลเลกชันภายใน for แบบขยาย

โค้ด: Iterator พื้นฐาน

Iterator ใช้ hasNext() และ next() การเรียก next() แต่ละครั้งจะเลื่อนไปข้างหน้าและส่งคืนองค์ประกอบนั้น

public class Main {
  public static void main(String[] args) {
    java.util.List<String> names = new java.util.ArrayList<>();
    names.add("Ada"); names.add("Bob"); names.add("Cyd");

    java.util.Iterator<String> it = names.iterator();
    while (it.hasNext()) {
      String s = it.next();
      System.out.println(s);
    }
  }
}

ข้อควรระวัง

ข้อควรระวัง: การลบข้อมูลโดยตรงภายในลูป for แบบขยายมักทำให้เกิด ConcurrentModificationException ให้ใช้ Iterator เพื่อเปลี่ยนแปลงโครงสร้างอย่างปลอดภัย

โค้ด: การลบอย่างปลอดภัย

การลบอย่างปลอดภัย: เมื่อพบข้อมูลที่ตรงกัน ให้เรียก remove() บน Iterator ทันทีหลังจาก next()

public class Main {
  public static void main(String[] args) {
    java.util.List<String> words = new java.util.ArrayList<>();
    words.add("to"); words.add("be"); words.add("or"); words.add("not");

    java.util.Iterator<String> it = words.iterator();
    while (it.hasNext()) {
      String w = it.next();
      if (w.length() <= 2) {
        it.remove(); // safe removal
      }
    }
    System.out.println(words); // [not]
  }
}

โค้ด: for แบบขยาย/forEach

for แบบขยาย เหมาะสำหรับการอ่านข้อมูล ส่วน forEach ที่ใช้แลมบ์ดาเป็นรูปแบบสั้นอีกแบบหนึ่ง (Java 8 ขึ้นไป)

public class Main {
  public static void main(String[] args) {
    java.util.Set<String> tags = new java.util.HashSet<>();
    tags.add("java"); tags.add("collections"); tags.add("oop");

    // enhanced for: read-only
    for (String t : tags) {
      System.out.print("[" + t + "]");
    }
    System.out.println();

    // Java 8+ forEach
    tags.forEach(t -> System.out.println("tag=" + t));
  }
}

แบบฝึกตรวจสอบการลบด้วย Iterator

ตรวจสอบอย่างรวดเร็ว: จะลบองค์ประกอบอย่างปลอดภัยขณะวนซ้ำผ่าน List ได้อย่างไร

ทบทวน

ทบทวน: ใช้ for แบบขยายสำหรับการอ่านข้อมูลง่าย ๆ และใช้ Iterator เมื่อต้องลบข้อมูลระหว่างการเดินผ่าน วิธีนี้ช่วยป้องกันข้อผิดพลาดขณะทำงาน

คำถามที่พบบ่อย

บทเรียน “ตัววนซ้ำและ for แบบเสริม” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ตัววนซ้ำและ for แบบเสริม” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Java Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Java Academy มีบทเรียนทั้งหมด 3 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ตัววนซ้ำและ for แบบเสริม”

วนผ่านคอลเลกชันด้วย Iterator และ for แบบเสริม เรียนรู้การลบอย่างปลอดภัยระหว่างการวนซ้ำและข้อผิดพลาดที่พบบ่อย คุณปฏิบัติ Java Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Java Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Java Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 3 บทเรียน

บทเรียน “ตัววนซ้ำและ for แบบเสริม” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Java Academy นี้ได้ไหม

ได้ บทเรียน Java Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ภาพรวมของ List และ Set
  2. ตัววนซ้ำและ for แบบเสริม
  3. ยูทิลิตีของคอลเลกชัน
← กลับไปที่ Java Academy