แนะนำ, 2024

ตัวเลือกของบรรณาธิการ

ความแตกต่างระหว่าง Iterator และ ListIterator ใน Java

Iterator และ ListIterator เป็นสองในสาม เคอร์เซอร์ ของ Java ทั้ง Iterator และ ListIterator ถูกกำหนดโดย Collection Framework ในแพ็คเกจ J ava.Util ListIterator เป็นอินเตอร์เฟสลูกของอินเตอร์เฟส Iterator ความแตกต่างที่สำคัญระหว่าง Iterator และ ListIterator คือ Iterator สามารถสำรวจองค์ประกอบในคอลเลกชันในทิศทาง ไปข้างหน้า เท่านั้นในขณะที่ ListIterator สามารถสำรวจองค์ประกอบในคอลเลกชันทั้งในทิศทาง ไปข้างหน้า และ ข้างหลัง

ให้เราคุยความแตกต่างเพิ่มเติมระหว่าง Iterator และ ListIterator ด้วยความช่วยเหลือของแผนภูมิเปรียบเทียบที่แสดงด้านล่าง

แผนภูมิเปรียบเทียบ

พื้นฐานสำหรับการเปรียบเทียบiteratorListIterator
ขั้นพื้นฐานIterator สามารถสำรวจองค์ประกอบในชุดสะสมในทิศทางไปข้างหน้าเท่านั้นListIterator สามารถสำรวจองค์ประกอบในคอลเลกชันไปข้างหน้าเช่นเดียวกับทิศทางย้อนหลัง
เพิ่มIterator ไม่สามารถเพิ่มองค์ประกอบให้กับคอลเลกชันListIteror สามารถเพิ่มองค์ประกอบให้กับคอลเลกชัน
แก้ไขIterator ไม่สามารถแก้ไของค์ประกอบในคอลเลกชันListIterator สามารถปรับเปลี่ยนองค์ประกอบในคอลเลกชันโดยใช้ set ()
ทราเวิร์Iterator สามารถท่องแผนที่รายการและตั้งค่าListIterator สามารถสำรวจรายการวัตถุเท่านั้น
ดัชนีIterator ไม่มีวิธีรับดัชนีขององค์ประกอบในคอลเลกชันใช้ ListIterator คุณสามารถรับดัชนีขององค์ประกอบในคอลเลกชัน

ความหมายของ Iterator

Iterator เป็นส่วนต่อประสานใน Collection Framework มันถูกใช้เพื่อสำรวจผ่านองค์ประกอบการเก็บรวบรวม Iterator อนุญาตให้คุณวนซ้ำแต่ละองค์ประกอบในคอลเลกชันหนึ่งต่อหนึ่ง รับ องค์ประกอบจากคอลเลกชันหรือ ลบ องค์ประกอบจากคอลเลกชัน คุณสามารถสังเกตเห็นว่าคุณไม่สามารถแก้ไของค์ประกอบใด ๆ ในคอลเลกชันโดยใช้ Iterator

Iterator มีเมธอด iterator () ที่ส่งคืนตัววนซ้ำไปยังจุดเริ่มต้นของการรวบรวม เมื่อคุณได้รับตัววนซ้ำไปยังจุดเริ่มต้นของคอลเลกชันแล้วเพื่อสำรวจองค์ประกอบในคอลเลกชันจะสร้างลูปที่เรียกว่า hasNext () ทุกครั้งที่วนซ้ำ hasNext () ถ้าคืนค่า จริง มันหมายความว่าองค์ประกอบถัดไปมีอยู่ในคอลเลกชันและถ้ามันกลับ เท็จ ก็หมายความว่าองค์ประกอบทั้งหมดจะถูกสำรวจ จากนั้นภายในลูปคุณสามารถรับแต่ละองค์ประกอบในคอลเล็กชันโดยใช้ ถัดไป () ถัดไป () วิธีการส่งกลับองค์ประกอบถัดไปของคอลเลกชัน

ข้อเสียเปรียบ:

การใช้ Iterator คุณสามารถเข้าไปสะสมในทิศทางไปข้างหน้าได้เท่านั้น
ใช้ Iterator คุณไม่สามารถจัดการหรือปรับเปลี่ยนองค์ประกอบในคอลเลกชัน

คำจำกัดความของ ListIterator

ListIterator เป็นอินเทอร์เฟซใน กรอบงานคอลเลกชัน และมันจะขยายส่วนต่อประสาน Iterator การใช้ ListIterator คุณสามารถสำรวจองค์ประกอบของคอลเลกชันได้ทั้งในทิศทาง ไปข้างหน้า และ ข้างหลัง นอกจากนี้คุณยังสามารถ เพิ่ม ลบ หรือ ปรับเปลี่ยน องค์ประกอบใด ๆ ในคอลเลกชัน ในระยะสั้นเราสามารถพูดได้ว่ามันลบข้อเสียของ Iterator

วิธีการของ ListIterator มีดังนี้:

hasNext () : หากผลตอบแทนจริงยืนยันว่ามีองค์ประกอบมากขึ้นในคอลเลกชัน
next () : ส่งคืนองค์ประกอบถัดไปของรายการ
nextIndex () : ส่งคืนดัชนีขององค์ประกอบถัดไปในรายการ
hasPrevious () : ผลตอบแทนจริงถ้ามีองค์ประกอบในทิศทางย้อนกลับในคอลเลกชัน
ก่อนหน้า () : ส่งคืนองค์ประกอบก่อนหน้าในคอลเลกชัน
previousIndex () : ส่งคืนดัชนีขององค์ประกอบก่อนหน้าในคอลเลกชัน
ลบ () : ลบองค์ประกอบออกจากคอลเลกชัน
set () : แก้ไของค์ประกอบในคอลเลกชัน
เพิ่ม () : เพิ่มองค์ประกอบใหม่ในคอลเลกชัน

ความแตกต่างที่สำคัญระหว่าง Iterator และ ListIterator

  1. ความแตกต่างพื้นฐานระหว่าง Iterator และ ListIterator คือทั้งสองเป็นเคอร์เซอร์ Iterator สามารถสำรวจองค์ประกอบในคอลเลกชันในทิศทางไปข้างหน้าเท่านั้น ในทางกลับกัน ListIterator สามารถเข้าไปในทิศทางไปข้างหน้าและข้างหลัง
  2. การใช้ตัววนซ้ำคุณไม่สามารถเพิ่มองค์ประกอบใด ๆ ลงในคอลเลกชันได้ แต่โดยใช้ ListIterator คุณสามารถเพิ่มองค์ประกอบลงในคอลเลกชัน
  3. ใช้ Iterator คุณไม่สามารถลบองค์ประกอบในคอลเลกชันที่ในขณะที่คุณสามารถลบองค์ประกอบจากคอลเลกชันโดยใช้ ListIterator
  4. การใช้ Iterator คุณสามารถเข้าไปในคอลเล็กชันทั้งหมดเช่น Map, List, Set แต่โดย ListIteror คุณสามารถสำรวจรายการที่นำมาใช้กับวัตถุเท่านั้น
  5. คุณสามารถดึงดัชนีขององค์ประกอบโดยใช้ Iterator แต่เนื่องจาก List เป็นแบบต่อเนื่องและอิงดัชนีคุณสามารถดึงดัชนีขององค์ประกอบในการใช้ ListIterator

สรุป:

คุณสามารถใช้ ListIterator เมื่อคุณต้องสำรวจรายการวัตถุโดยเฉพาะอย่างยิ่งในทิศทางไปข้างหน้าและย้อนกลับ มิฉะนั้นคุณสามารถใช้ Iterator เนื่องจากรองรับวัตถุประเภทการเก็บรวบรวมทั้งหมด

Top