Download presentation
Presentation is loading. Please wait.
Published byJames O’Brien’ Modified over 9 years ago
1
CSC 212 – Data Structures Lecture 23: Iterators
2
Question of the Day Thieves guild states it will sell to members: lock picking kits $0.67 each 40’ rope $2.12 each Wire cutters $4.49 each How much would one pay for 4 lock picking kits, 8 ropes, and 5 wire cutters? Nothing, they’d steal it.
3
List ADT Accesses all elements in a Collection Can access all elements without removals set added to accessors and removals Lists differ how they provide access IndexList access via integer ranks PositionList access via relative Position What then defines a List? Lists are Iterable
4
Iterators Scans collection’s elements Start processing with first element… …then process second element… …then the third element… …and so on until processed last element (Obviously) Associated with other ADTs Provides mean of processing elements Debug structures like Stack, Queue, & Deque
5
Using Iterators Loops can rely on using Iterators Improves modularity Use code with any collection providing iterator Improves reuse Leave ADT implementation issues to Iterator Write very generic, simple code
6
Iterator Interface Important interface defined by Java: import java.util.Iterator;... public class It implements Iterator {…} Interface defines 3 methods: E next(); boolean hasNext() throws NoSuchElementException; void remove() throws UnsupportedOperationException; First call to next() returns first element Later calls advance through structure
7
Cursor How Iterators Work Iterators keep cursor with current location Cursor is very implementation specific Array-based structure – cursor could be index Linked list-based structure – cursor is Node(?) elements Cursor Ø
8
Iterable Data Structures Data structure for which have an iterator Interface defined as java.lang.Iterable Used by List ADT import java.util.Iterator; import java.lang.Iterable;... public interface List extends Iterable { public Iterator iterator(); } Marks any instances will have an Iterator
9
Why Bother? Java provides nice shortcut for Iterables List myList;... for (Integer i : myList) {... } does the same thing as if we wrote: List myList;... for (Iterator j=myList.iterator(); j.hasNext();){ Integer i = j.next();... }
10
Limit of Iterator May not want to iterate over elements Cannot change element stored at locations Interface provides remove() operation, but… …that is slow, ugly, and painful (at best) Often define Iterator over positions In turn, returns each position With the position, can make changes desired Adds method to PositionList interface: public Iterator > positions();
11
Your Turn Get back into groups and do activity
12
Before Next Lecture… Keep up with your reading! Start Week #10 Assignment Work on Programming Assignment #2
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.