Middle
Меъёриҳои интерфейси Iterator ва ListIterator-ро муқоиса кунед. Аслӣ фарқиятҳои онҳо чист ва дар кадом ҳолатҳо беҳтар аст ҳар яке аз онҳоро истифода баред?
sobes.tech AI
Ҷавоб аз AI
Iterator имкон медиҳад, ки элементҳои ҷамъовариро дар як самт (ба пеш) убур кунад, мавҷудияти элементи ояндаро (hasNext()) санҷад ва онро бигирад (next()). Мумкин аст, ки элементи ҳозираро (remove()) тоза кунад. Ин барои убури умумии ҳар гуна ҷамъоварӣ, ки интерфейси Iterable-ро иҷро мекунад, истифода мешавад.
ListIterator аз Iterator мерос мегирад ва функсионалиятҳоро илова мекунад:
- Ҳаракат дар ҳар ду самт (
hasPrevious(),previous()). - Гирифтани индексҳои элементи ҳозира (
nextIndex()) ва гузашта (previousIndex()). - Тағйир додани элементи (
set()). - Иловаи элементи (
add()).
ListIterator танҳо ба ҷамъоварӣҳое дахл дорад, ки интерфейси List-ро иҷро мекунанд, зеро бо индексҳо кор мекунад.
Барои убури умумӣ ва тоза кардани элементи дар ҳама ҷамъоварии Iterable истифодаи Iterator. Барои амалиётҳои махсус бо List (ҳаракат дар ду самт, тағйир додан, илова кардан бо индекс) истифодаи ListIterator.