[go: up one dir, main page]

0% found this document useful (0 votes)
21 views3 pages

Iterator Pattern

Uploaded by

Natalia B.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views3 pages

Iterator Pattern

Uploaded by

Natalia B.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

15/01/24, 11:50 Design Patterns - Iterator Pattern

Design Patterns - Iterator Pattern

Iterator pattern is very commonly used design pattern in Java and .Net programming
environment. This pattern is used to get a way to access the elements of a collection
object in sequential manner without any need to know its underlying representation.

Iterator pattern falls under behavioral pattern category.

Implementation
We're going to create a Iterator interface which narrates navigation method and a
Container interface which retruns the iterator . Concrete classes implementing the
Container interface will be responsible to implement Iterator interface and use it

IteratorPatternDemo, our demo class will use NamesRepository, a concrete class


implementation to print a Names stored as a collection in NamesRepository.

Step 1
Create interfaces.

Iterator.java

public interface Iterator {


public boolean hasNext();
public Object next();
}

https://www.tutorialspoint.com/design_pattern/iterator_pattern.htm 1/3
15/01/24, 11:50 Design Patterns - Iterator Pattern

Container.java

public interface Container {


public Iterator getIterator();
}

Step 2
Create concrete class implementing the Container interface. This class has inner
class NameIterator implementing the Iterator interface.

NameRepository.java

public class NameRepository implements Container {


public String names[] = {"Robert" , "John" ,"Julie" , "Lora"};

@Override
public Iterator getIterator() {
return new NameIterator();
}

private class NameIterator implements Iterator {

int index;

@Override
public boolean hasNext() {

if(index < names.length){


return true;
}
return false;
}

@Override
public Object next() {

if(this.hasNext()){
return names[index++];
}
return null;
}

https://www.tutorialspoint.com/design_pattern/iterator_pattern.htm 2/3
15/01/24, 11:50 Design Patterns - Iterator Pattern

}
}

Step 3
Use the NameRepository to get iterator and print names.

IteratorPatternDemo.java

public class IteratorPatternDemo {

public static void main(String[] args) {


NameRepository namesRepository = new NameRepository();

for(Iterator iter = namesRepository.getIterator(); iter.hasNext(


String name = (String)iter.next();
System.out.println("Name : " + name);
}
}
}

Step 4
Verify the output.

Name : Robert
Name : John
Name : Julie
Name : Lora

https://www.tutorialspoint.com/design_pattern/iterator_pattern.htm 3/3

You might also like