Advertisement
karbaev

Untitled

May 28th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.00 KB | None | 0 0
  1. package iterators;
  2.  
  3. import java.util.Iterator;
  4. import java.util.Stack;
  5.  
  6. /**
  7.  * Created by Danila on 29.05.2017.
  8.  */
  9. public class CompositeIterator implements Iterator {
  10.     Stack stack = new Stack();
  11.  
  12.     public CompositeIterator(Iterator iterator){
  13.         stack.push(iterator);
  14.     }
  15.  
  16.     @Override
  17.     public boolean hasNext() {
  18.         if(stack.empty()) {
  19.             return false;
  20.         } else {
  21.             Iterator it = (Iterator) stack.peek();
  22.             if (!it.hasNext()) {
  23.                 stack.pop();
  24.                 return hasNext();
  25.             }
  26.             else return true;
  27.         }
  28.     }
  29.  
  30.     @Override
  31.     public Object next() {
  32.         if(hasNext()){
  33.             Iterator it = (Iterator) stack.peek();
  34.             MenuComponent component = (MenuComponent) it.next();
  35.             if(component instanceof MenuArrayList){
  36.                 stack.push(component.createIterator());
  37.             }
  38.             return component;
  39.         }
  40.         else return null;
  41.     }
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement