Iterator ใน Java คืออะไรและจะใช้อย่างไร?



Iterator ในบล็อก Java จะให้คำแนะนำที่ถูกต้องเกี่ยวกับสิ่งที่เป็นตัววนซ้ำและวิธีใช้สิ่งเหล่านี้ใน Java พร้อมกับตัวอย่างบางส่วน

หากคุณกำลังทำงานกับไฟล์ และบอกว่าคุณต้องการพิมพ์ลำดับนั่นคือจุดที่ Iterator ใน Java เข้ามาในรูปภาพ ด้วยวิธีนี้คุณจะได้ลำดับโดยไม่ต้องเพิ่มคำสั่งพิมพ์สำหรับแต่ละบรรทัด มาเรียนรู้เกี่ยวกับ Iterator in .

ด้านล่างนี้คือหัวข้อที่ฉันจะพูดถึงในโมดูลนี้:





มาเริ่มกันเลย!

iterator คืออะไร?

Java ส่วนใหญ่รองรับเคอร์เซอร์ที่แตกต่างกันสี่ตัว ได้แก่ :



  • การแจงนับ
  • Iterator
  • ListIterator
  • ตัวแยก

เคอร์เซอร์ Java แต่ละตัวเหล่านี้มีข้อดีและข้อเสียบางประการ เราจะเน้นไปที่ Iterator ในบทความนี้

วิธีการต่อท้าย java

ตอนนี้ตัววนซ้ำใน Java คืออะไร?

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



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

วิธี Java Iterator

Java iterator มีทั้งหมด 4 วิธี เรามาทำความเข้าใจโดยละเอียดกัน

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

ตัวอย่าง:

class Method {public static void main (String [] args) ArrayList list = new ArrayList () list.add ('E') list.add ('D') list.add ('U') list.add ('R ') list.add (' E ') list.add (' K ') list.add (' A ') // Iterator เพื่อสำรวจรายการ Iterator iterator = list.iterator () System.out.println (' องค์ประกอบรายการ : ') while (iterator.hasNext ()) System.out.print (iterator.next () +' ') System.out.println ()}}

เอาท์พุต: EDUREKA

มาดู ListIterator ใน Java กัน

ListIterator ใน Java

ListIterator ใน Java เป็น Iterator ที่อนุญาตให้ผู้ใช้สำรวจผ่าน Collection ได้ทั้งสองทิศทาง ประกอบด้วยวิธีการดังต่อไปนี้:

วิธีการวิธีการและคำอธิบาย
โมฆะเพิ่ม (Object obj) แทรก obj ลงในรายการที่อยู่ด้านหน้าขององค์ประกอบที่จะถูกส่งคืนโดยการเรียกถัดไปไปที่ next ()
บูลีน hasNext () ส่งคืนจริงหากมีองค์ประกอบถัดไป มิฉะนั้นจะส่งกลับเท็จ
บูลีน hasPrevious () ส่งคืนค่าจริงหากมีองค์ประกอบก่อนหน้า มิฉะนั้นจะส่งกลับเท็จ
วัตถุถัดไป () ส่งคืนองค์ประกอบถัดไป NoSuchElementException จะถูกโยนออกไปหากไม่มีองค์ประกอบถัดไป
int nextIndex () ส่งกลับดัชนีขององค์ประกอบถัดไป หากไม่มีองค์ประกอบถัดไปให้ส่งคืนขนาดของรายการ
วัตถุก่อนหน้า () ส่งคืนองค์ประกอบก่อนหน้า NoSuchElementException จะถูกโยนออกไปหากไม่มีองค์ประกอบก่อนหน้านี้
int previousIndex () ส่งกลับดัชนีขององค์ประกอบก่อนหน้า หากไม่มีองค์ประกอบก่อนหน้าให้คืนค่า -1
โมฆะลบ () ลบองค์ประกอบปัจจุบันออกจากรายการ IllegalStateException จะถูกโยนออกไปหากมีการเรียกใช้ remove () ก่อน next () หรือ previous ()
ชุดโมฆะ (Object obj) กำหนด obj ให้กับองค์ประกอบปัจจุบัน นี่คือองค์ประกอบที่ส่งคืนล่าสุดโดยการเรียกไปยัง next () หรือ previous ()

ตัวอย่าง:

public class Lists {public static void main (String args []) {// สร้างรายการอาร์เรย์ ArrayList al = new ArrayList () // เพิ่มองค์ประกอบในรายการอาร์เรย์ al.add ('E') al.add ('D ') al.add (' U ') al.add (' R ') al.add (' E ') al.add (' K ') al.add (' A ') // ใช้ iterator เพื่อแสดงเนื้อหาของ อัล System.out.print ('เนื้อหาดั้งเดิมของ al:') Iterator itr = al.iterator () ในขณะที่ (itr.hasNext ()) {Object element = itr.next () System.out.print (element + '' )} System.out.println () // แก้ไขอ็อบเจ็กต์ที่กำลังทำซ้ำ ListIterator litr = al.listIterator () while (litr.hasNext ()) {Object element = litr.next () litr.set (element + '+') } System.out.print ('Modified contents of al:') itr = al.iterator () while (itr.hasNext ()) {Object element = itr.next () System.out.print (element + '') } System.out.println () // ตอนนี้แสดงรายการย้อนหลัง System.out.print ('รายการแก้ไขย้อนหลัง:') ในขณะที่ (litr.hasPrevious ()) {Object element = litr.previous () System.out. พิมพ์ (องค์ประกอบ + '')} System.out.println ()}}

เอาท์พุต:

ต้นฉบับเนื้อหาของอัล:E D U R EK A
แก้ไขเนื้อหาของอัล:คือ++ยู++คือ+ถึง+ A +
แก้ไขรายการย้อนหลัง:ถึง+ถึง+คือ++ยู++ และ +

ตอนนี้เรามาดูข้อดีและข้อ จำกัด ของอินเทอร์เฟซตัววนซ้ำนี้ใน Java กัน

ข้อดีของ Iterator ใน Java

Iterator ใน Java มีข้อดีดังต่อไปนี้

  • คุณสามารถใช้ตัววนซ้ำเหล่านี้สำหรับคลาสคอลเลคชันใดก็ได้
  • Iterator ใน Java รองรับทั้งสองอย่าง อ่าน เช่นเดียวกับ ลบ การดำเนินงาน
  • หากคุณกำลังใช้ สำหรับห่วง คุณไม่สามารถ อัปเดต (เพิ่ม / ลบ) คอลเล็กชันในขณะที่ด้วยความช่วยเหลือของตัววนซ้ำคุณสามารถอัปเดตคอลเล็กชันได้อย่างง่ายดาย
  • เป็น Universal Cursor สำหรับ Collection API
  • ชื่อเมธอดนั้นง่ายมากและใช้งานง่ายมาก

ข้อ จำกัด ของ Iterator ใน Java

Iterators ใน Java มีข้อบกพร่องดังต่อไปนี้:

  • คุณสามารถทำซ้ำทิศทางไปข้างหน้าได้นั่นคือ Uni-Directional Iterator
  • Iterator ไม่รองรับการเปลี่ยนและการเพิ่มองค์ประกอบใหม่
  • ListIterator เป็นตัววนซ้ำที่ทรงพลังที่สุด แต่ใช้ได้กับคลาสที่ใช้งาน List เท่านั้น ดังนั้นจึงไม่ใช่ Universal iterator
  • เมื่อคุณใช้การดำเนินการ CRUD จะไม่สนับสนุนการดำเนินการสร้างและอัปเดต
  • เมื่อคุณเปรียบเทียบกับ Spliterator จะไม่ให้คุณทำซ้ำองค์ประกอบแบบขนาน ซึ่งหมายความว่ารองรับเฉพาะการทำซ้ำตามลำดับ
  • ไม่สนับสนุนประสิทธิภาพที่ดีกว่าในการทำซ้ำข้อมูลจำนวนมาก

สิ่งนี้ทำให้เรามาถึงตอนท้ายของบทความนี้ซึ่งเราได้เรียนรู้เกี่ยวกับการทำงานของ iterator ใน Java หวังว่าคุณจะชัดเจนกับทุกสิ่งที่แบ่งปันกับคุณในบทช่วยสอนนี้

python __init__ วิธีการ

หากคุณพบบทความเกี่ยวกับ“ Iterator ใน Java” นี้เกี่ยวข้องโปรดดูที่ไฟล์ บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้พร้อมเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก

เราพร้อมช่วยเหลือคุณในทุกขั้นตอนในการเดินทางนอกเหนือจากนี้เรายังมีหลักสูตรที่ออกแบบมาสำหรับนักเรียนและมืออาชีพที่ต้องการเป็น Java Developer หลักสูตรนี้ออกแบบมาเพื่อให้คุณเริ่มต้นการเขียนโปรแกรม Java และฝึกอบรมแนวคิด Java ทั้งหลักและขั้นสูงพร้อมกับเฟรมเวิร์ก Java ต่างๆเช่น Hibernate & Spring

หากคุณพบคำถามใด ๆ อย่าลังเลที่จะถามคำถามทั้งหมดของคุณในส่วนความคิดเห็นของ 'Iterator ใน Java' และทีมงานของเรายินดีที่จะตอบ